《算法》-排序[初级排序算法]

    《算法》系列,是面向《算法》第四版这本书进行学习,会去除繁琐的文字叙述,会从以下两个方面去理解一个算法:

1、这个算法是什么?

2、这个算法怎么用?

    整个系列会使用python作为编程语言,避免看着文本抄袭的麻烦。一些关于《算法》这本书的学习方法可以参考:算法学习之路

选择算法

不稳定排序

1、找到数组中最小的元素

2、将它和第一个元素交换位置

3、再从剩下的元素中找到最小的元素,将它和第二个元素进行交换,如此往复。

插入算法

属于稳定排序,相当于抓牌,将每一张牌放到相应位置。

步骤:

选一个key,对比前面的数字,进行交换

希尔算法

属于不稳定排序,平均nlog(n)

希尔排序(Shell’s Sort)是插入排序的一种,相对于插入排序只能相邻之间交换,希尔排序可以在子序列中进行交换。

步骤:

1、把记录按步长gap分组,对每组记录采用直接插入排序方法进行排序;

2、随着步长逐渐减小,所分成的组包含的记录越来越多;

3、当步长值减小到1时,整个数据合成一组,构成一组有序记录,完成排序;

公众号:算法手记

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容