·基本思想:
首先要明白冒泡(bubble),是一种小数下沉,大数上浮的方法,故名冒泡。其基本原理是有一组无序的一组数字,从第一个数字开始,两两相比较变成一个从小到大一个有序的一组数。如果后面的数字比前面的小,则交换,否则,用后面的数字和下一个数字继续比较,直到把这组数字遍历完全。
·重点
要比较一个数和其他后面的一组数,首先要用到两个嵌套循环,第一个用来记次数(一定注意是次数),里面的循环则是遍历数组。每一次遍历都会找到一个最大的数,然后又从头开始找,两两相比较,直到找到所有的数,从一个无序数组变成一个有序的数组。过程如下:
·具体代码
public class maopao {
public static void main(String[] args) {
int arr[]= {2,6,5,4,1,2,3,0} ;//给定一个固定的数组
for (int i = 0; i < arr.length-1; i++) {//外层控制第几次比较,总共比较i-1次
for (int j = 0; j < arr.length-i-1; j++) {//每次遍历后会找到一个最大的数在后面,所以下次比较时就不用比较后面的
if(arr[j]>arr[j+1]) {//比较相邻两个数字的大小,后面的小则交换。
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}
·总结
其实,感觉冒泡排序就是一种基本的排序,只要了解其中的关系就会明白其中的意义。关键还是要多想和多练孰能生巧。