《算法》系列,是面向《算法》第四版这本书进行学习,会去除繁琐的文字叙述,会从以下两个方面去理解一个算法:
1、这个算法是什么?
2、这个算法怎么用?
整个系列会使用python作为编程语言,避免看着文本抄袭的麻烦。一些关于《算法》这本书的学习方法可以参考:算法学习之路
选择算法
不稳定排序
1、找到数组中最小的元素
2、将它和第一个元素交换位置
3、再从剩下的元素中找到最小的元素,将它和第二个元素进行交换,如此往复。

插入算法
属于稳定排序,相当于抓牌,将每一张牌放到相应位置。
步骤:
选一个key,对比前面的数字,进行交换

希尔算法
属于不稳定排序,平均nlog(n)
希尔排序(Shell’s Sort)是插入排序的一种,相对于插入排序只能相邻之间交换,希尔排序可以在子序列中进行交换。
步骤:
1、把记录按步长gap分组,对每组记录采用直接插入排序方法进行排序;
2、随着步长逐渐减小,所分成的组包含的记录越来越多;
3、当步长值减小到1时,整个数据合成一组,构成一组有序记录,完成排序;

公众号:算法手记
网友评论