
排序算法
ZSC_LM
这个作者很懒,什么都没留下…
展开
-
排序算法之 - 归并排序
归并排序也有类似于快速排序的 切割 的过程,但是快速排序会选择基准值,而归并排序则直接将列表 尽可能两等分(若长度为奇数,那么有一侧会少一个元素,左侧还是右侧是无妨的)。当分割到左右两侧都只剩下一个元素的时候,分割完成,开始往上层拼接结果。拼接的大致流程是:取左右两侧队首的元素,比较两者大小,较小的先进入已排序列表。重复执行此流程,直至有一侧为空,将另一侧剩余元素直接合并到已排序列表的右侧。鬼归...原创 2019-10-30 20:48:02 · 8318 阅读 · 0 评论 -
排序算法之 - 快速排序
快速排序的第一步是在列表中随机选取一个 基准值,将列表中剩余的其他数与基准值 逐一比较,小于基准值的放在基准值左侧,大于基准值的放在基准值右侧,这样就会形成如下的新列表:[小于基准值的列表] + 基准值 + [大于基准值的列表]接下来对左侧小于基准值的列表继续执行上述过程,直至最后左侧排序完成再对右侧大于基准值的列表继续执行上述过程,直至右侧排序完成Notice:...原创 2019-10-29 17:28:48 · 6822 阅读 · 0 评论 -
排序算法之 - 插入排序
插入排序插入排序与选择排序一样,也分成:已排序列表 和 未排序列表 两部分。它也是重复执行一个步骤的过程:从右侧未排序列表取出第一个值,将它“插入”左侧已排序区域的合适位置,具体做法有不同的理解方式,比如:(方式一)先将它合并到左侧已排序列表的最右侧,然后针对已排序列表执行类似冒泡排序的过程 “从最右侧开始,依次比较相邻的两个元素的大小,右侧小于左侧则交换两者的位置,否则停止比较,看起来右侧的...原创 2019-10-26 17:30:03 · 6795 阅读 · 0 评论 -
排序算法之 - 选择排序
选择排序选择排序也是重复执行一个动作的流程:从 待排序列表 中查找 最小 的元素,将它与 待排序列表 的 第一个元素进行 交换,交换之后第一个元素进入 已排序列表,除去 第一个元素之后的其他元素组成 下一轮的待排序列表,其初始状态如图:第一轮运行流程及结果:第二轮运行流程及结果:第三轮运行流程及结果:第四轮运行流程及结果:第五轮运行流程...原创 2019-10-25 20:45:11 · 6823 阅读 · 0 评论 -
排序算法之 - 冒泡排序
冒泡排序冒泡排序就是重复执行:从最右侧开始,依次比较相邻的两个元素的大小,右侧小于左侧则交换两者的位置,看起来右侧的较小的数就好像渐渐“浮”到左边,以下为示例:第一轮运行流程及结果(实线为交换,虚线为不交换):第二轮运行流程及结果:第三轮运行流程及结果:第四轮运行流程及结果:第五轮运行流程及结果:第六轮运行流程及结果:...原创 2019-10-25 18:50:43 · 7047 阅读 · 1 评论