选择排序和冒泡排序
2018-11-22 本文已影响0人
simit
选择排序代码实现:
int[] arr = new int[]{6,3,7,2,5,8};
public static void selectSort(){
for(int i = 0 ;i<arr.length-1;i++) {
for(int j = i+1;j<arr.length;j++) {
if(arr[i]<arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// System.out.println("第"+(i+1)+"次排序--"+"第"+j+"轮交换之后的数组:"+Arrays.toString(arr));
}
System.out.println("第"+(i+1)+"次排序:"+Arrays.toString(arr));
}
System.out.println("最终排序结果:"+Arrays.toString(arr));
}
打印排序过程:

查看交换过程:

选择排序的基本实现逻辑:

可以得出结论:选择排序是第一次排序找出数组中的最大值,第二次排序找出数组中的第二大的值,以此类推实现排序。
冒泡排序代码实现:
int[] arr = new int[]{6, 3, 7, 2, 5, 8};
public static void bubbleSort() {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
System.out.println("第" + (i + 1) + "次排序--" + "第" + (j+1) + "轮交换之后的数组:" + Arrays.toString(arr));
}
// System.out.println("第" + (i + 1) + "次排序:" + Arrays.toString(arr));
}
System.out.println("最终排序结果:" + Arrays.toString(arr));
}
打印排序过程:

查看交换过程:

冒泡排序的基本实现逻辑

得出结论:冒泡排序是通过相邻的两个数据的比较,第一次排序找出数组中最小的值放在数组的末尾,第二次排序找出数组中第二小的值放在数组的倒数第二位,以此类推实现排序。