码迷,mamicode.com
首页 > 编程语言 > 详细

比较计数排序

时间:2014-11-28 09:59:18      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   sp   for   div   log   bs   

计数排序的基本思想是对于给定的输入序列中的每一个元素x,确定该序列中值小于x的元素的个数。一旦有了这个信息,就可以将x直接存放到最终的输出序列的正确位置上。例如,如果输入序列中只有17个元素的值小于x的值,则x可以直接存放在输出序列的第18个位置上。当然,如果有多个元素具有相同的值时,我们不能将这些元素放在输出序列的同一个位置上,因此,上述方案还要作适当的修改。

//计数排序
#include <stdio.h>
//n为个数,k为最大值,b为输出
void CountingSort(int a[], int b[], int n)
{
    int count[6];
    int i,j;
    for (i=0;i<n;i++)
    {
        count[i]=0;
    }
    for (i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(a[i]<a[j])
                count[j]++;
            else
                count[i]++;
        }
    }
    for(i=0;i<n;i++)
    {
        b[count[i]]=a[i];
    }
}

void main()
{
    int num[6] = {23,45,13,2,99,78};
    int out[6];
    int i;


    printf("排序前\n");
    for ( i = 0; i < 6; i++) 
    {
        printf("%d  ",num[i]);
    }
    printf("\n");
    CountingSort(num, out, 6);

    printf("排序后\n");
    for (i = 0; i < 6; i++) {

        printf("%d  ",out[i]);
    }
    printf("\n");
}

 

比较计数排序

标签:style   blog   io   color   sp   for   div   log   bs   

原文地址:http://www.cnblogs.com/220l/p/4127668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!