排序算法–冒泡排序(java)
- 冒泡排序思想
从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移。每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。
冒泡排序详细步骤
1) 比较相邻的元素,如果第一个比第二个大,就交换他们两个。
2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3)针对所有的元素重复以上的步骤,除了最后一个。
4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。算法实现(java)
public static void BubbleSort(int[] a){
int n = a.length;
for(int i = 0; i<n-1; i++){ //发现之前写的是i<n,应该小于n-1就行~
for(int j = 1; j < n-i; j++){ //又发现一个问题,此处 j< n-i 是个计算,可以改变一下: for(int j=n-1;j>i;j--)
if(a[j]>a[j-1]){
int temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
}