冒泡排序的Java实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
    }
}

猜你喜欢

转载自blog.csdn.net/starjingweij/article/details/80884051