排序算法
行者无疆哇
理工技术男
展开
-
冒泡排序python实现
冒泡排序python实现去年写过一篇冒泡排序python实现,外层多了一层循环,这里更正过来~算法思想冒泡排序(以从小到大排序为例)的思想在于,不断地将当前元素与后一个元素进行比较,如果当前元素较小,则调换当前元素与后一个元素的位置,否则保持不变;假设需要排序的元素一共有nnn个,在iii轮排序过程中,从第一个元素开始,跟后续的(n−i)(n-i)(n−i)元素进行上述比较(注意:上一轮排序...原创 2020-04-30 23:58:06 · 546 阅读 · 0 评论 -
直接排序python实现
直接排序python实现排序问题是算法领域非常经典的案例,其中的一些排序算法(例如堆排序)还用到了数据结构的知识。在最近一段时间,我打算将常见的排序算法都用python实现一遍,做一个排序算法总结,在必要的地方将给出算法的思想阐述。今天先讲解最简单的直接排序,排序的思想非常暴力,就是将数组(或者列表)中的元素进行逐一比较。以从小到大排序为例,如果在数组中的某个元素小于前面的元素,那么就将这两个...原创 2019-04-30 21:47:02 · 604 阅读 · 0 评论 -
折半查找python实现
折半查找python实现折半查找是常用的查找方法(在按大小顺序排列中的数组或者列表中更是如此),与传统的顺序查找相比,它查找的效率更高。算法思想算法的思想很直接,也就是先把第一个和最后一个作为作为low和high的值,然后将要查找的数字与这两个位置对应的数值进行比较(当然,为了保证算法稳健性,先判断要查找的数字在不在数组或列表中,如果不存在则提示重新输入)。算法操作步骤设给定的数组为A,...原创 2019-05-01 10:45:34 · 9018 阅读 · 4 评论 -
希尔排序python实现
希尔排序python实现希尔排序是直接插入排序的加强版,也称为减小增量排序。以从小到大排序为例进行简要分析。算法思想希尔排序的排序思想在先将原序列划分成若干个子序列,其中划分的依据为按照间隔gap的大小分开。至于gap的选法可以不一样,我们以gap初始值选为序列总长度的一半为例。在每个子序列之内,使用直接插入排序(插入一个数字,前一个跟后一个相比,如果后一个值比前一个值小则调换两者之间的位置...原创 2019-05-01 11:36:08 · 2704 阅读 · 1 评论 -
直接插入排序python实现
直接插入排序python实现算法思想直接插入排序的算法思想在于:每一步将一个待排序的数字,插入到前面已经排好序的有序序列中去;重复上述插入数字操作,直到插完所有元素为止,此时序列已经全部排列完毕。将直接插入排序进行推广,可以得到希尔排序,它相比起直接插入排序的好处在于在每一轮排序的时候设置间隔gap,利用gap分成若干个子序列,在每个字序列中使用直接插入排序;这个间隔gap逐渐减小,直到这个...原创 2019-05-01 12:00:33 · 1687 阅读 · 3 评论 -
快速排序python实现
快速排序python实现快速排序相比起前面介绍的直接选择排序、直接插入排序、冒泡排序、希尔排序更加高效,下面使用python实现这个算法。算法思想快速排序的核心思想在于:首先在这个序列中随便找一个数作为基准数,然后将这个序列中所有比基准数大的数放在该数字的右边,比基准数小的数放在该数字的左边。第一轮排序结束之后,再分别对已经好的基准书左边(比基准数小)和基准书右边(比基准书大)的数字序列重复...原创 2019-05-01 16:52:41 · 4016 阅读 · 3 评论