版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/starjingweij/article/details/80884051
基本方法:
设待排序对象序列中的对象个数为n。一般地,第i趟起泡排序从1到n-i+1依次比较相邻两个记录地关键字,如果发生逆序,则交换之,其结果是这n-i+1个记录中,关键字最大的记录被交换到第n-i+1的位置上,最多作n-1趟。
代码实现:
public class Sort {
public static void main(String[] args){
int[] array = {21,25,49,25,16,8,100,46,88};
sort(array);
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
private static void sort(int[] array) {
int length = array.length;
for (int i = length; i>1; i--) {//i变量用来控制遍历的次数,起始值为数组的长度,每次比较完一趟后,i-1,因为最后的一位已经确定是最大的,无需再比较
for (int j = 0; j < i-1; j++) {//j变量表示元素的位置
if(array[j]>array[j+1])//从第一个位置开始到i-1个位置遍历,如果发现值小于下一个元素,那么与其交换位置.
swap(array,j,j+1);
}
}
}
//交换方法
private static void swap(int[] array, int j, int i) {
int temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}