python-冒泡排序

冒泡排序的时间复杂度是O(N^2)

冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置

比如有五个数: 13, 35, 99, 18, 76, 从大到小排序, 对相邻的两位进行比较

  • 第一趟:
  • 第一次比较: 35, 13, 100, 18, 76
  • 第二次比较: 35, 100, 13, 18, 76
  • 第三次比较: 35, 100, 18, 13, 76
  • 第四次比较: 35, 100, 18, 76, 13

经过第一趟比较后, 五个数中最小的数已经在最后面了, 接下来只比较前四个数, 依次类推

  • 第二趟
    100, 35, 76, 18, 13
  • 第三趟
    100, 76, 35, 18, 13
  • 第四趟
    100, 76, 35, 18, 13
    比较完成

冒泡排序原理: 每一趟只能将一个数归位, 如果有n个数进行排序,只需将n-1个数归位, 也就是说要进行n-1趟操作(已经归位的数不用再比较)

python-冒泡排序_第1张图片

(1)冒泡排序是比较相邻位置的两个数,而选择排序是按顺序比较,找最大值或者最小值;

(2)冒泡排序每一轮比较后,位置不对都需要换位置,选择排序每一轮比较都只需要换一次位置;

(3)冒泡排序是通过数去找位置,选择排序是给定位置去找数;

 冒泡排序优缺点:优点:比较简单,空间复杂度较低,是稳定的;
                              缺点:时间复杂度太高,效率慢,冒泡排序解决了桶排序浪费空间的问题, 但是冒泡排序的效率特别低

 

你可能感兴趣的:(数据结构)