摘要: 选择排序: 默认最左侧的元素为最小,而后依次将右侧的每个元素与最左侧的元素比较,如果比最左测的元素小,则交换位置 第一遍遍历会将最小的元素放在最左边,而后继续遍历,依次得出第二小、第三小...第二大的元素 阅读全文
posted @ 2019-05-10 21:09 辣眼睛De小新 阅读(166) 评论(0) 推荐(0)
摘要: shell(希尔)排序是插入排序的一种,是直接插入排序算法的一种更高效的改进版本, 其思想是使数组中任意间隔h的元素都是有序的,其目的是为了减少元素的移动距离. 时间复杂度: O(nlogn)~O(n^2) array_0 = [12, 23, 54, 32, 11, 76, 5, 73,2, 89 阅读全文
posted @ 2019-05-10 20:13 辣眼睛De小新 阅读(554) 评论(0) 推荐(0)
摘要: # 从待排序的n个记录中的第二个记录开始,依次与前面的记录比较并寻找插入的位置,每次外循环结束后,将当前的数插入到合适的位置。# 时间复杂度: O(n)~O(n^2) def insert_sort1(array): n = len(array) for i in range(1, n): for j in range(i, 0, -1): ... 阅读全文
posted @ 2019-05-10 19:00 辣眼睛De小新 阅读(1292) 评论(0) 推荐(0)
摘要: 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 时 阅读全文
posted @ 2019-05-10 13:26 辣眼睛De小新 阅读(3837) 评论(0) 推荐(0)
摘要: # 快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。# 时间复杂度O(nlog2n)def quick_sort(array): if len(array) array[first]] re... 阅读全文
posted @ 2019-05-10 12:04 辣眼睛De小新 阅读(221) 评论(0) 推荐(0)