![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
文章平均质量分 68
站在风口的猪猪侠
这个作者很懒,什么都没留下…
展开
-
插入排序—直接插入排序
排序的基本概念排序的稳定性:经过排序后的数列中具有相同关键字的元素之间的相对次序保持不变,称这种排序方法是稳定的。 内排序:整个表都是放在内存中处理,排序时不涉及内外数据的交换 外排序:排序过程中需要进行内、外数据的交换插入排序的基本思想每次将一个带排序的元素,按其关键字的大小插入到已经排好序的子表的适当位置,直到全部元素插入完成为止。直接插入排序思想对于一个数组...原创 2019-03-22 10:48:58 · 488 阅读 · 0 评论 -
交换排序—冒泡排序
排序思路冒泡排序又称气泡排序:通过无序区中相邻关键字的比较和位置的交换,使关键字中最小的元素如气泡一般逐渐“上浮”直至“水面”。对于一个n个元素的数组,进行n-1轮排序,每一轮将最小的元素归位。代码实现#include <iostream>using namespace std;void BubbleSort(int a[],int n){ i...原创 2019-03-26 12:02:12 · 379 阅读 · 0 评论 -
插入排序—折半插入排序
排序思路和直接插入排序相似,先把待排序列看作连个部分:R[0……i-1]为有序,R[i……n-1]为无序。初始时,i=1,即有序部分为R[0]和直接插入排序不同的是,无序元素向有序区插入的方式是通过折半查找到合适的位置。在R[0……i-1]中(初始时low=0,high=i-1),采用折半查找方法得到R[i]的位置为R[high+1],然后将R[high+1,i-1]中的元素后移一个位...原创 2019-03-22 23:56:24 · 447 阅读 · 0 评论 -
交换排序—快速排序
排序思路在待排序数列中任取一个元素(通常是第一个元素作为基准),将所有大于该元素的元素放入一边,所有小于该元素的元素放入另一边。这一过程叫做一趟快速排序。接着对左右两边进行上面重复操作,直到每一个部分内只有一个元素或为空。对于无序数组a[n]采用从两头向中间扫描,同时交换与基本元素逆序的元素。具体做法:设两个指针i和j最初指向无序区的第一个元素和最后一个元素,将第一个元素a[i]放入临时变...原创 2019-03-30 15:27:07 · 269 阅读 · 0 评论 -
插入排序—希尔排序
排序思路希尔排序是一种分组插入排序。先取定一个小于n的整数d1作为第一个增量,把表全部元素分成d1个组,所有相互之间距离为d1的倍数的元素放在一个组内。在各组之间进行插入排序;然后再取第二个增量d2(d2<d1)重复分组和排序的过程,直至所取的增量dt=1(dt<d(t-1)<……<d2<d1)。举例:对于数组int a[10]={9,8,7,6,5,4,3,...原创 2019-03-24 11:31:10 · 314 阅读 · 0 评论 -
选择排序—直接选择排序
直接选择排序也成为简单选择排序。排序思想对于一个待排序数列,每次从无序区选择一个最小的元素,放入有序区(初始时有序区为空),直到无序区元素只有一个(即整个数列的最大值)。具体操作:第i趟排序开始,数列分为有序区a[0,i-1]和无序区a[i,n-1]。从无序区中选择最小元素a[k],将a[k]放在无序区的最左边的位置:a[k]<->a[i]互换位置。直到无序区元素为一个。...原创 2019-03-31 10:21:59 · 640 阅读 · 0 评论 -
选择排序—堆排序
堆的定义n个关键字序列:成为堆,当且仅当该序列满足以下性质(简称为堆性质):(1)且(2)且满足(1)情况的堆为小根堆,满足第二种情况的为大根堆。下面讨论的是大根堆。排序思路堆排序的过程与直接选择排序类似,只是挑选最大或是最小元素的不同,这里采用大根堆,每次挑选最大元素归位。挑选最大元素的方法是将数组中存储的数据看成是一棵完全二叉树,利用完全二叉树中双亲结点和...原创 2019-04-01 11:07:54 · 473 阅读 · 0 评论 -
归并排序
排序思路归并排序就是多次将两个或两个以上的有序表合并成一个新的有序表。最简单的就是直接将两个有序的子表合并成一个有序的表即二路归并。二路归并思路:将a[0,n-1]看成是n个长度为1的有序子表,然后两两归并,得到个长度为2(最后一个有序序列长度可能为1)的有序序列;再进行两两归并,得到个长度为4(最后一个有序序列长度可能小于4)的有序序列,……直到得到一个长度为n的有序序列。注意:归...原创 2019-04-02 14:05:22 · 391 阅读 · 0 评论 -
基数排序
排序思路基数排序通过“分配”和收集过程来实现排序,不需要进行关键字的比较,是一种借助多关键字排序的思想对但关键字排序的方法。基数排序分为两种:最低位优先(LSD)和最高为优先(MSD)。这里我们采用最低为优先,过程是:先按最低位的值对元素进行排序,在次基础上对次低位进行排序,依次类推,由低位向高位,每一趟都是根据关键字的一位并在上一趟的基础上对所有关键字进行排序,直至最高位。注意:基数...原创 2019-04-08 11:31:32 · 1204 阅读 · 0 评论