作为一个未来的资深程序员,掌握给数组排序这个技能是非常重要的。提出这个问题,可能很多人嗤之以鼻,排序这种小技能,还需要发帖说吗?数组工具类里调用一下sort()方法不就ok了嘛。我不否认,用sort()方法排序,又快捷又简便,但是我们毕竟现在还是初学者,不管是就业班面试还是公司面试都可能考察你对冒泡排序的掌握,所以说熟练写出冒泡排序还是很重要的,下面我就抛砖引玉为大家说一下冒泡排序。“冒泡”望文生义就是大的数往后跑,小的数往前跑。还有就是它是相邻两个元素进行比较,所以说,能够清楚的知道整体要做几次比较和每次比较多少次是非常重要的。相邻两个元素进行比较,显然第一次比较要比较数组长度-1次,经过第一次比较以后。最大的数就到数组的最大索引处了,为了提高效率,第二次比较,最大索引处的元素就不用参加比较了。所以第二次要比较数组长度-2次。依次类推就能清楚地写出代码了。
package com.heima.allreview;
class Demo{
public static void main(String[] args){
int[] arr = {1,6,3,2,4,5,9,8,0,23,45};
bubbleSort(arr);
for(int i = 0;i<arr.length;i++){
System.out.print(arr[i]+",");
}
}
public static void bubbleSort(int[] arr){
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 = 0;
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}
菜鸟贴,请各位大神批阅。
|