最近看到些关于C/C++排序的一些代码,自己以前也没有怎么学习过这些,正好这次有时间来好好看看。
排序分为内部排序和外部排序。
内部排序:待排序的内容放在计算机随机存储器中进行排序的过程;
外部排序:排序中要对外存储器进行访问的排序过程。
内部排序:插入排序,交换排序,选择排序,归并排序,基数排序。
主程序:
1.插入排序
a.直接插入排序
基本思路;一次把待排序的记录逐一插入到一个已经有序的序列中。
b.希尔排序
基本思路:直接插入排序相当于是希尔排序的特例,即将d=1进行排序。
2.交换排序
a.冒泡排序
基本思路:大数沉底;比较第1个数和第2个数的大小,如果1<2,则不做任何改变,继续比较2和3,如果2>3,则交换2和3的位置,接下来继续比较3和4。第一次排序完成后,找出最大的值(或最小值)。
b.快速排序
基本思路:快速排序是冒泡排序的一种改进。从两边往中间拍,第一次选出一个基准值,比基准值小的放左边,大的放右边。第一次排序完成后,再将基准值左右区间重复前面的操作。
3.选择排序
a.简单选择排序
基本思路:每次排序从记录中选出最小或者最大的数,顺序放在已有序的序列后面。