`
jgsj
  • 浏览: 962903 次
文章分类
社区版块
存档分类
最新评论

内部排序合集●插入、希尔、起泡、快速、选择、堆、归并和基数排序●

 
阅读更多

内部排序合集(插入、希尔、起泡、快速、选择、堆、归并和基数排序)
这是我在我们期末的时候写的一些内部排序的例子。因为我们的数据结构考试的范围就限定在内部排序上,所以我没有什么办法,只好对自己埋头苦干就行内部排序的编程了。有些内部排序的例子很是好理解,我们可以通过一些图示来很好地了解到这些排序的过程,但是这些程序的代码可能不是那么好写。而另外一些程序的思想既难以理解,也难于编码。着实地伤透了我的脑筋。下面就将我的程序的主框架代码展示给大家看看。注意,在这里我怎样也不好实现2-路插入排序,因为它这样的排序方法运用在顺序存储结构下不好,在判断数组越界的时候这样的复杂性使我最终放弃了这种方法。要不还不如使用其余的排序呢。
毕竟了解内部排序是一件好事,以后在看一些内部排序的时候也不至于摸不着头脑。最近我看到了一本有关介绍用C++来编辑游戏的书,它就以STL为例,讲解了STL内部实现的机理。

Code:
  1. //头文件
  2. #include<iostream>
  3. usingnamespacestd;
  4. #include"InsertionSort.h"
  5. #include"Shell'sSort.h"
  6. #include"QuickSort.h"
  7. #include"SelectionSort.h"
  8. #include"MergingSort.h"
  9. #include"RadixSort.h"
  10. //定义的宏
  11. #defineLENGTH10
  12. //主函数
  13. intmain(intargc,char**argv)
  14. {
  15. //定义一个顺序表
  16. SqLista;
  17. intobjArray[LENGTH]={278,109,63,930,589,184,505,269,8,83};
  18. a.length=LENGTH;
  19. inti;
  20. for(i=1;i<a.length+1;i++)//需要将0号位设为监视哨
  21. {
  22. a.r[i].key=objArray[i-1];
  23. a.r[i].otherinfo='/0';
  24. }
  25. //直接插入排序
  26. //InsertSort(a);
  27. //折半插入排序
  28. //BInsertSort(a);
  29. //2-路插入排序
  30. //BinRouteInsertSort(a,2);//这个算法有问题
  31. //希尔排序
  32. /*
  33. {
  34. intdlta2[3]={3,2,1};
  35. ShellSort(a,dlta2,3);
  36. }
  37. */
  38. //起泡排序
  39. //BubbleSort(a);
  40. //快速排序
  41. //QuickSort(a,1,LENGTH);
  42. //选择排序
  43. //SelectSort(a);
  44. //堆排序
  45. //HeapSort(a);
  46. //归并排序
  47. //MergeSort(a);
  48. //基数排序
  49. {
  50. SLListb;
  51. inti;
  52. b.keynum=3,b.recnum=LENGTH;//对3位整数进行基数排序
  53. for(i=1;i<=b.recnum;i++)
  54. {
  55. b.r[i].keys[0]=objArray[i-1]%10;//个位
  56. b.r[i].keys[1]=objArray[i-1]%100/10;//十位
  57. b.r[i].keys[2]=objArray[i-1]/100;//百位
  58. }
  59. RadixSort(b);
  60. }
  61. //显示排序后的数组
  62. for(i=1;i<a.length+1;i++)//需要将0号位设为监视哨
  63. cout<<a.r[i].key<<'';
  64. cout<<'/n';
  65. return0;
  66. }


要想得到这些排序的具体实现,那么就下载我的代码吧。最近我的积分由于下载一些Boost的资料而变为0了。所以需要的朋友一定要支持一下哦。(使用VS2005开发,算法都是C风格的,可以直接使用。)

Download様はこちらへ

我最新的动态:最近在研究DirectInput,希望能够在几天后写一篇技术文章,分享一些我的经验。

分享到:
评论

相关推荐

    数据结构排序算法汇总包-直接插入排序 折半插入排序 2—路插入排序 表插入排序 希尔排序 起泡排序 快速排序 简单选择排序 树形选择排序 堆排序 归并排序链式基数排序

    实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...

    内部排序算法合集(插入、希尔、起泡、快速、选择、堆、归并和基数排序)

    内部排序合集(插入、希尔、起泡、快速、选择、堆、归并和基数排序) 这是我在我们期末的时候写的一些内部排序的例子。因为我们的数据结构考试的范围就限定在内部排序上,所以我没有什么办法,只好对自己埋头苦干就...

    几种内部排序算法的Java实现

    几种内部排序算法的Java实现 各种内部排序方法的比较 直接插入排序 折半插入排序 希尔排序 起泡排序 快速排序 简单选择排序 树形选择排序 堆排序 归并排序 基数排序

    十种内部排序的算法比较

    (1) 对以下10种内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序、折半插入排序、二路插入排序、归并排序、基数排序。 (2) 待排序表的表长不小于100;其中的数据要用伪随机...

    数据结构内部排序算法比较.doc

    (1)对以下6种常用的内部排序算法进行比较z起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。 (2)待排序表的表长不小于1005其中的数据要用伪随机数产生程序产生:至少要用5组不同的输入数据作比较...

    内部排序,主要是内部排序的讲解,课件

    概述 插入排序 (直接插入、折半插入、表插入排序、希尔排序) 交换排序 (起泡排序、快速排序) 选择排序 (简单选择排序、树形选择排序、堆排序) 归并排序 基数排序 小结

    Data Structure 数据结构教程 C语言版PPT课件 第8章 排序 共223页.ppt

    8.1 概述 8.2 插入排序 8.3 交换排序 ...3. 掌握希尔排序、归并排序、堆排序、基数排序的方法及其性能分析 4. 掌握外部排序方法中败者树的建立及归并方法,掌握置换-选择排序的过程和最佳归并树的构造方法。

    c语言实现的各种排序算法效率分析与比较及源代码

    希尔排序和链式基数排序;起泡排序,快速排序,归并排序;简单选择排序,树形选择排序和堆排序。 通过输入不同的数据量和数据大小正序,逆序和乱序情况比较各种排序算法的效率。 其中树形选择排序算法有点错误。

    排序综合的C源代码(包括系统时间调用)

    1) 至少采用5种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序,基数排序)。并把排序后的结果保存在不同的文件中。 2) 利用系统提供的时间函数,...

    各种排序算法.rar

    直接插入排序、折半插入排序,起泡排序、快速排序、选择排序、堆排序,基数排序,归并排序,希尔排序,可视化界面,MFC

    常用排序算法C语言示例代码解说PDF

    个人原创总结的常用排序算法C语言示例代码解说PDF...包含有直接插入排序,折半插入排序,2路直接插入排序,起泡排序,简单选择排序,快速排序,堆排序,(希尔排序,归并排序,基数排序为空白),供学习排序算法的爱好者参考。

    比较常用的排序算法

    比较直接插入排序、希尔排序、直接选择排序、堆排序、起泡排序、快速排序、归并排序、基数排序。随机生成一组待排序数据,个数不少于100个;各种算法对同一数据排序所需要的关键字比较次数和关键字移动次数,至少...

    数据结构提要与习题解答

    数据结构提要与习题解答 严蔚敏版 1.插入类 (如直接插入排序、折半插入排序、2-路插入排序、希尔排序)  将无序子序列中的一个或几个记录“插入”到有序序列中,从而增加记录的... (5) 其它方法 (如基数排序)

    数据结构课程设计--十种内部排序发的比较

    各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或者大概执行时间。通过随机数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。

    数据结构讲义(严蔚敏版)(含算法源码).rar

    数据结构讲义(严蔚敏版)(含算法源码) 第0章 复习提示 1 一、 教材内容 1 二、 复习提示 1 1. 经典算法 1 2. 绪论 1 3. 线性表 1 4. 栈和队列 2 5. 串 2 ...10. 基数排序 72 11. 各种排序方法比较 73

    数据结构讲义(严蔚敏版)(含算法源码)

    数据结构讲义(严蔚敏版)(含算法源码) 1. 经典算法 单链表:遍历、插入、删除 循环队列:队列空、队列满的条件 二叉树:递归遍历及应用 有序表的二分法查找 ...链式基数排序(A,O) 各种排序算法的对比结论(O)

    考研-数据结构-殷人昆.zip

    8.6 基数排序 248 8.7 外部排序 252 8.7.1 概念与流程 252 8.7.2 置换-选择排序 253 8.7.3 佳归并树 254 8.7.4 败者树 255 8.7.5 时间与空间复杂度相关问题 257 8.8 排序知识点小结 258 ▲真题仿造 259 真题仿造答案...

Global site tag (gtag.js) - Google Analytics