大家好,又见面了,我是你们的朋友全栈君。
经典算法——冒泡排序(Bubble Sort)
一、示例代码(伸手党看这里)
1.示例一
importjava.util.Arrays;public classBubbleSort {public static void bubbleSort(int[] arr){int temp; /*临时变量,交换数据时使用*/
int length =arr.length;for(int p = length-1; p > 0; p–){ /*需要进行N-1(数组长度减一)趟排序*/
for(int i = 0; i < p; i++){ /* 开始排序 */if(arr[i] > arr[i+1]){//进行位置交换
temp =arr[i];
arr[i]= arr[i+1];
arr[i+1] =temp;}
}
}
}public static voidmain(String[] args) {int[] a = {10, 2, 5, 7, 23, 59, 3};
bubbleSort(a);
System.out.println(Arrays.toString(a));
}
}
当然,上面的代码可以小小的优化一下。
在使用冒泡排序的时候有可能会遇到这样一种情况:某一趟排序从头到尾,数组中的数字都没有发生位置交换。
那么上面这种情况说明了什么呢?说明了在经过上一趟的排序后,整个数组就已经被排好序了。
这么说的话原来计划的N-1趟排序我们是不是可以不用跑满了?是的!
所以可以优化的地方是:在每一趟排序排完后,看一下这一趟有没有发生数字位置
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152139.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...