1、冒泡排序
import java.util.Arrays;
/*** 冒泡排序*/
public class Test01 {public static void main(String[] args) {int[] values = {3,1,6,2,9,0,7,4,8,5};System.out.println("排序前数组:"+ Arrays.toString(values));int temp;for (int i = 0; i < values.length; i++) {for (int j = 0; j < values.length-i-1; j++) {if (values[j]>values[j+1]){temp = values[j];values[j] = values[j+1];values[j+1] = temp;}}System.out.println("第"+(i+1)+"趟,完成时"+Arrays.toString(values));}}
}
2、优化代码:
从上图得知,第五趟排好后就可以直接输出了。所以对代码进行优化
import java.util.Arrays;/*** 冒泡排序*/
public class Test01 {public static void main(String[] args) {int[] values = {3,1,6,2,9,0,7,4,8,5};System.out.println("排序前数组:"+ Arrays.toString(values));int temp; //用来交换的临时变量//定义一个布尔类型的变量,标记数组是否已达到有序状态boolean flag = true;for (int i = 0; i < values.length; i++) {for (int j = 0; j < values.length-i-1; j++) {if (values[j]>values[j+1]){//两两比较,如果大于就交换temp = values[j];values[j] = values[j+1];values[j+1] = temp;flag = false;}}if (flag){System.out.println("结束排序!");break;}else {flag = true;}System.out.println("第"+(i+1)+"趟,完成时"+Arrays.toString(values));}}
}
3、把算法封装起来,以后用可以直接调用方法
import java.util.Arrays;/*** 冒泡排序*/
public class Test01 {public static void main(String[] args) {int[] values = {3,1,6,2,9,0,7,4,8,5};bubbleSort(values);}public static void bubbleSort(int[] values){//int[] values = {3,1,6,2,9,0,7,4,8,5};System.out.println("排序前数组:"+ Arrays.toString(values));int temp; //用来交换的临时变量//定义一个布尔类型的变量,标记数组是否已达到有序状态boolean flag = true;for (int i = 0; i < values.length; i++) {for (int j = 0; j < values.length-i-1; j++) {if (values[j]>values[j+1]){//两两比较,如果大于就交换temp = values[j];values[j] = values[j+1];values[j+1] = temp;flag = false;}}if (flag){System.out.println("结束排序!");break;}else {flag = true;}System.out.println("第"+(i+1)+"趟,完成时"+Arrays.toString(values));}}
}