原创

冒泡排序

1、冒泡排序简介(从小到大排序)

​ 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

​ 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

​ 针对所有的元素重复以上的步骤,除了最后一个,即需要进行length-1次。

​ 第一次是对n个数进行n-1次比较,进行到最后第n个的一个是最大的;

​ 第二次是对n-1个数进行n-2次比较,进行到最后第n-1个的一个是最大的;

​ ......

​ 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

​ 动态图:

2、实现案例

Java代码实现

public class test {
    public static void main(String[] args) {
        int[] list = {65, 55, 45, 35, 25, 15, 10};
        list =bubble_sort(list);
        for(int j=0;j<list.length;j++)
        System.out.print(list[j]+" ");
    }
     public static int[] bubble_sort(int[] number){
        int unsorted_until_index= number.length-1;//该索引之前的数据都没排过序
         boolean sorted = false;//记录数组是否已经完全排好序
         while (! sorted){
             sorted = true;
             for (int i = 0; i <unsorted_until_index ; i++) {
                 if (number[i]>number[i+1]){
                     sorted=false;
                     int mid = number[i];
                     number[i]=number[i+1];
                     number[i+1]= mid;
                 }
             }
             unsorted_until_index=unsorted_until_index -1;
         }
         return number;
     }
}

Python代码实现

def bubble_sort(list):
    unsorted_until_index=len(list) -1
    sorted=False

    while not sorted:
         sorted=True
         for i in range(unsorted_until_index):
              if list[i] > list[i+1]:
                sorted=False
                list[i], list[i+1]=list[i+1], list[i]
         unsorted_until_index=unsorted_until_index -1

list=[65, 55, 45, 35, 25, 15, 10]
bubble_sort(list)
print(list)

  • 作者:管理员(联系作者)
  • 发表时间:2020-11-03 23:16
  • 版权声明:自由转载-非商用-非衍生-保持署名
  • 公众号转载:请在文末添加作者公众号二维码
  • 评论

    0 QQ
    懂了
    1 游客
    11111111111