内容:这章我具体学习了
稳定的:
1.直接插入法:最简单且稳定。
2.折半插入法:利用 “折半查找”。
3.冒泡排序:最简单的交换排序,可用于顺序表和链式存储结构,但只能交换相邻记录,适于小规模数据。
4.简单选择排序:即“直接选择排序”,与冒泡算法上有些类似,但也不适于大规模数据( O(n^2)/2 )。
5.归并排序:将序列“分开”,再一边比较关键字,一边合并和新的有序序列。
6.基数排序:借助于多关键字排序的思想对单关键字排序的方法,类似自己手中给自己的扑克牌排序以便出牌。
不稳定的:
7.希尔排序:直接插入的改进,将有序序列“分”为若干组,对每组进行直接插入排序,限于顺序表结构,在规模略大时有优势。
8.快速排序:冒泡排序的改进。通过递归,每一趟把所有关键字小千pivotkey 的记录交换到前面,把所有关键字大于pivotkey的记录交换到后面,以此再“分”为两块表,重复直至只有一个记录
9.堆排序:实则也是树形选择排序,建堆比较麻烦,只能用顺序表,但高效适用于大规模。
心得:
以前接触过的,大多是交换或选择原理的,一下碰到这么多排序方法,确实有点懵,学的时候吧,好像不是很难理解,真要排序时,一想,我还是冒泡吧...
或许也是我没怎么实践的缘故吧,实践起来还是挺头大的,不知道自己是否选对了最合适的排序方法,起码不能是对当前问题最麻烦的。
这个学期也要结束了,珍贵的数据结构要结束了,说实话,我肯定没有大佬收获的多,终究还是学习态度上吃亏,我好菜啊...
不过我的大二压力肯定更大,得再逼一逼自己+_+