![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
数据结构中的排序问题
过客WZX
认认真真吃饭,老老实实减肥。
展开
-
表排序
文章目录表排序表排序思想当待排数组中的元素不是简简单单的整数,而是复杂的结构体,那么移动元素所花费的时间就不能忽略不计了,这时候我们要减少元素之间移动的次数了。表排序就是这么一个排序,在表排序的过程中,实际上是不需要移动元数的,我们要移动的是指向这些元素的指针。排序例:给下面的数组进行排序,要求尽量的减少移动次数。定义一个数组作为表,纪律待排序元素的下标;对数组Tab...原创 2020-02-23 00:44:28 · 1421 阅读 · 2 评论 -
快速排序
[TOC]快速排序思路快速排序与归并排序类似,也是使用了分而治之的思路,即在数组中随机寻找一个元素,称为“主元”,然后将数组中其余元素分为两个子集,子集1中元素比主元小,放在主元左边;子集2中元素比主元大,放在主元右边,该过程称为“子集划分”。将两个子集递归地“找主元”和“子集划分”,当最后子集只有一个元素的时候,数组就排好序了。伪码描述void QuickSort(ListE...原创 2020-02-22 01:42:51 · 114 阅读 · 0 评论 -
归并排序
文章目录归并排序归并排序核心:有序子列的归并已知两个有序的子列,怎样才能将两个有序子列元素合并成一个有序序列?例:有序子列1(红)、有序子列2(绿)、存放结果的数组(蓝)。三个指针,Aptr指向子列1的起始位置,Bptr指向子列2的起始位置,Cptr指向存放结果数组的起始位。Aptr指向的元素和Bptr指向的元素比较大小,Aptr指向元素较小,所以将该元素存放在Cpt...原创 2020-02-21 00:02:11 · 143 阅读 · 0 评论 -
堆排序
文章目录堆排序堆排序想要了解堆排序,最好先掌握堆的基本操作。思路思考取出堆元素的操作,每取出一个元素,堆里面的元素就减少一个,但是存储堆元素的数组空间大小是不变的。所以可以把一个元素从堆取出后,将其存储在堆中最后一个元素后面。步骤用待排序数组建立一个没有“哨兵”的最大堆(即存储堆元素的数组从下标为0的位置开始存储)。取出最大堆中一个元素,该元素一定是堆中元素最大的。然后将...原创 2020-02-19 21:01:14 · 98 阅读 · 0 评论 -
希尔排序
文章目录涉及的一些知识希尔排序涉及的一些知识逆序对设AAA为一个有nnn个数字的有序集(n>1n>1n>1),其中所有数字各不相同。如果存在正整数iii、jjj使得1≤i<j≤n1 \leq i < j \leq n1≤i<j≤n而且A[i]>A[j]A[i]>A[j]A[i]>A[j],则(A[i],A[j])(A[i],A[j...原创 2020-02-18 18:18:49 · 437 阅读 · 0 评论 -
简单排序(选择、冒泡、插入)
文章目录涉及的一些知识简单排序选择排序冒泡排序插入排序涉及的一些知识逆序对设AAA为一个有nnn个数字的有序集(n>1n>1n>1),其中所有数字各不相同。如果存在正整数iii、jjj使得1≤i<j≤n1 \leq i < j \leq n1≤i<j≤n而且A[i]>A[j]A[i]>A[j]A[i]>A[j],则(A[i],A[j...原创 2020-02-18 02:43:37 · 117 阅读 · 0 评论