
排序算法
无敌的白金之星
这个作者很懒,什么都没留下…
展开
-
python排序算法实现——(四)快速排序
快速排序简介快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:从数列中挑出一个元素,称为”基准”(pivot), 重新排序...原创 2018-08-18 09:34:12 · 198 阅读 · 0 评论 -
python排序算法实现——(五)归并排序
归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。代码实现def merge_sort(alist): if len(alist) <=...原创 2018-08-18 10:03:31 · 225 阅读 · 0 评论 -
python排序算法实现——(一)冒泡排序
冒泡排序简介冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。运作原理比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。对每一对相邻元素作...原创 2018-08-17 16:49:32 · 283 阅读 · 0 评论 -
python排序算法实现——(二)选择排序
选择排序的原理选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至...原创 2018-08-17 17:09:44 · 260 阅读 · 0 评论 -
python排序算法实现——(三)插入排序
插入排序原理插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 代码实现:def insert_sort(alist): # 从第二个位置,即下标为1的元素开始向...原创 2018-08-17 19:25:39 · 173 阅读 · 0 评论 -
对于常见排序算法的时间复杂度比较
算法最优最劣平均情况稳定性备注冒泡排序O(n)O(n^2)O(n^2)稳定n小时比较好选择排序O(n^2)O(n^2)O(n^2)不稳定n小时比较好插入排序O(n^2)O(n)O(n^2)稳定大部分已有顺序时好希儿排序O(n)O(n^2)O(nlogn)~O(n^2)不稳定和步长有关快速O(nlogn)...原创 2018-10-17 20:37:07 · 1139 阅读 · 0 评论