数据结构第八章学习总结

一、本章知识思维导图

 

 

二、第八章知识小结

1. 插入排序

(1) 直接插入排序

对于待排序列中的元素,在已排序列中顺序查找插入位置,将待排元素插入并移动。

 

 (2)折半插入排序

基于直接插入排序,查找插入位置使用折半查找。

(3)希尔排序

将间隔步长d1的两个元素分为一组,组内进行直接插入排序;第二趟取步长d2(<d1),重复以上分组并排序,依此类推。

 

 2. 交换排序

(1)冒泡排序

两两比较相邻记录,若发生逆序,则进行交换。

 

 (2)快速排序

选择第一个记录为枢轴,设指针low, high分别指向表下界及上界;从最右侧向左搜索,第一个小于枢轴的关键字移到low处;当low<high,若high大于枢轴,则向左移动high,反之则将high所指移到low所指;从最左侧搜索,第一个大于枢轴的记录和枢轴交换,low<high时,low所指小于等于枢轴,则向右移动low,反之则将low与枢轴交换;重复前两步直至low=high。

 

 3.选择排序

(1)简单选择排序

待排序列中顺序查找最小记录r[k],交换r[1]和r[k]。

 

 (2)堆排序

得到堆,调整堆,得到最大值,调整堆,得到最大值……如此类推得到序列(大根堆为例,小根堆同理)

调整:从最后一个非叶子结点开始直到根节点,检查父结点是否大于子结点,若子结点大则交换两个结点;上到下检查调整。

 

posted @ 2020-07-12 18:04  陈宝胜  阅读(213)  评论(0编辑  收藏  举报