![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
文章平均质量分 59
夜深人静码代码
这个作者很懒,什么都没留下…
展开
-
选择排序——堆排序
一、堆排序的相关概念1、堆的定义从堆的定义可以看出,堆实质是满足如下性质的完全二叉树:二叉树中任一非叶子结点均小于(大于)它的孩子结点。2、堆排序的定义若在输出堆顶的最小值(最大值)后,使得剩余n- 1个元素的序列重又建成一个堆,则得到n个元素的次小值(次大值) ... .如此反复,便能得到一个有序序列,这个过程称之为堆排序。二、堆的调整1、如何在输出堆顶元素后,调整剩余元素为一个新的堆?以小根堆为例:①输出堆顶元素之后,以堆中最后一个元素替代之 ;②然后将根结点值与原创 2023-06-09 11:06:52 · 564 阅读 · 0 评论 -
交换排序——冒泡排序和快速排序
一、交换排序的基本思想1、两两比较,如果发生逆序则交换,直到所有记录都排好序为止。2、常见的交换排序方法:冒泡排序和快速排序二、冒泡排序1、冒泡排序基本思想:每趟不断将记录两两比较,并按“前小后大”规则交换。2、 冒泡排序总结:■n个记录,总共需要n-1趟■第m趟需要比较n-m次3、算法描述void bubble_sort(SqList &L){ //冒泡排序算法int m,i,j; RedType x;原创 2023-06-14 14:34:18 · 869 阅读 · 0 评论 -
插入排序超详解释,一看就懂
一、插入排序的相关概念1、基本思想每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入为止。即边插入边排序, 保证子序列中随时都是排好序的。就像玩扑克牌抓牌的时候。2、基本操作:有序插入■在有序序列中插入一个元素,保持序列有序,有序长度不断增加。■起初,a[0]是长度为1的子序列。然后,逐一将a[1]至a[n-1 ]插入到有序子序列中。二、插入排序的种类三、直接插入排序1、直接插入排序的过程:顺序查找法查找插入位置原创 2023-06-16 09:56:34 · 5176 阅读 · 0 评论