排序算法
TOP-SECRET
这个作者很懒,什么都没留下…
展开
-
C++排序算法之插入排序
插入算法:把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。代码如下(从小到大):#include#includeint main(){ int n,num[10000]; //定义数组 scanf(原创 2017-05-21 09:06:39 · 558 阅读 · 0 评论 -
C++排序算法之冒泡排序
冒泡排序:顾名思义,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,就像冒泡泡一样。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。代码如下(从大到小):#includeint main(){ int n; //数的个数 int num[10000]; //排序范围:最多10000个数 scanf("%d",&n);原创 2017-05-20 21:52:50 · 417 阅读 · 0 评论 -
C++排序算法之选择排序
选择排序:把每一个位置(除最后一个位置)的数与后面的数进行比较,满足条件便交换,来一个一个确定位置。代码如下(从小到大):#includeint main(){ int n; //数的个数 int num[10000]; //排序范围:最多10000个数 scanf("%d",&n); for(int i=0;i<n;i++) //输入每个数 scanf("%d",&num原创 2017-05-20 20:46:23 · 459 阅读 · 0 评论 -
C++排序算法之桶排序
桶排序的思想是把记录的数放在某个有限范围内(整型)内,然后顺序输出,但耗费空间较大,且一个值不能出现两次。代码如下(从小到大):#includebool num[10000]={false}; //装数的"桶" 范围:0-9999 int n,k; //数的个数n和临时存储数的kint main(){ scanf("%d",&n); for(int i=0;i<n;i+原创 2017-05-20 17:32:58 · 1486 阅读 · 0 评论 -
C++排序算法之归并排序
归并排序:是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。代码如下(从小到大):#includeint n,num[10000],r[10000]; //num是待排序数组,r是临时数组void mergesort(int s,原创 2017-05-21 13:40:19 · 477 阅读 · 0 评论 -
C++排序算法之快速排序
快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。代码如下(从小到大):#includeint n,num[10000];void qsort(int left,int right) //快速排序{ int i,j,midd原创 2017-05-21 12:57:58 · 475 阅读 · 0 评论 -
C++排序算法之希尔排序
希尔排序:是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。代码如下:#include int n,num[10000];void shell_sort() { int i,j,x,d; d=n/2; while(d) { for (i=d+1;i<=n;i++) { x=n原创 2017-05-21 13:45:36 · 539 阅读 · 0 评论