![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
第十章:内排序
文章平均质量分 76
kong_xz
这个作者很懒,什么都没留下…
展开
-
插入排序、交换排序
一、排序的基本概念 所谓排序,是要整理表中的记录,使之按关键字递增(或递减)有序排列。其确切定义如下:输入:n个记录,R0,R1,…,Rn-1,其相应的关键字分别为k0,k1,…,kn-1。输出:Ri,0,Ri,1,…,Ri,n-1,使得ki,0≤ki,1≤…≤ki,n-1 (或ki,0≥ki,1≥…≥ki,n-1)。算法的稳定性当待排序记录的关键字均不相同时,排序的结果是惟一的,否则排序的结果不...原创 2018-03-15 17:21:49 · 1394 阅读 · 0 评论 -
选择排序
选择排序的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子表的最后,直到全部记录排序完毕。两种选择排序方法:(1)简单选择排序(或称直接选择排序)(2)堆排序一、直接选择排序基本思想:第i趟排序开始时,当前有序区和无序区分别为R[0..i-1]和R[i..n-1](0≤i<n-1),该趟排序则是从当前无序区中选出关键字最小的记录R[k],将它与无序区的第1个记录R[i]...原创 2018-03-16 10:39:46 · 1208 阅读 · 0 评论 -
归并排序
归并排序是多次将两个或两个以上的有序表合并成一个新的有序表。最简单的归并是直接将两个有序的子表合并成一个有序的表。Merge()实现了一次归并 :void Merge(RecType R[],int low,int mid,int high) { RecType *R1; int i=low,j=mid+1,k=0; //k是R1的下标,i、j分别为第1、2段的下...原创 2018-03-16 10:45:36 · 436 阅读 · 0 评论 -
基数排序
前面所讨论的排序算法均是基于关键字之间的比较来实现的,而基数排序是通过“分配”和“收集”过程来实现排序。基数排序是一种借助于多关键字排序的思想对单关键字排序的方法。一般地,记录R[i]的关键字R[i].key是由d位数字组成,即kd-1,kd-2,…k0,每一个数字表示关键字的一位。其中kd-1为最高位,k0是最低位,每一位的值都在0≤ki<r范围内,其中r称为基数。基数排序有两种:最低位优先(L...原创 2018-03-16 10:51:07 · 1767 阅读 · 0 评论