七种经典排序算法python实现
最近要考算法设计,所以把排序算法总结一下。经典的排序算法包括:冒泡排序,选择排序,插入排序,快速排序,归并排序,堆排序和希尔排序。全部程序都用python3实现,默认从小到大排序。 参考文章:https://blog.csdn.net/ls5718/article/details/51809866,博主的文章里面有演示动图,不懂的时候可以看下动图。 介绍: 让两数比较大的值一直滚动到最右侧,类似泡泡一直往上飘,每次滚动都要进行比较 思路: 临近的数字两两进行比较,按照从小到大的顺序进行交换,这样一趟过去,最大的数字就被交换到了最后一位, 然后再从头开始两两比较交换,直到导数第二位时结束 步骤: 1、比较相邻的元素,如果前一个比后一个大,就交换它们两个 2、对第0个到第n-1个数据做同样的工作,这时,最小的数就会‘浮’到数组的最左边位置 3、对所以的元素重复上面的步骤,除了单一个 4、持续每次对越来越少的元素重复上面的步骤,知道没有任何一个数字需要比较 时间复杂度: O(n**2) 如果未优化的冒泡排序,最好的情况也是O(n**2),优化后的最好情况是O(n) 具体代码: 介绍: 保持最小元素在最左侧,用最左侧的元素依次和右边的元素比较,谁小谁放在左边。 思路:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子序列前面,直到全部记录排序完毕 步骤:1