冒泡排序

幻昼 2020年03月20日 238次浏览

思想

  • 基本方法设待排序对象序列中的对象个数为n。
  • 一般地,第i趟起泡排序从1到n-i+1依次比较相邻两个记录的关键字,如果发生逆序,则交换之。
  • 其结果是这n-i+1个记录中,关键字最大的记录被交换到第n-i+1的位置上,最多作n-1趟。

图片

bubbleSort

代码

Java:

public LinkedList<Integer> bubbleSort(LinkedList<Integer> list) {

        int length = list.size();  //列表的长度

        for (int i = length - 1; i > 0; i--) {  //进行n-1轮,n-1到1,每一轮都把最大/最小放在当前这些数紧接的后面
            for (int j = 0; j < i; j++) {       //n-1个数两两比较,交换顺序
                if (list.get(j) > list.get(j + 1)) {  //不符合顺序的就交换
                    int temp = list.get(j + 1);
                    list.set(j + 1, list.get(j));
                    list.set(j, temp);
                }
            }
        }

        return list;
    }