计数排序

来源:互联网 发布:淘宝上买什么 编辑:程序博客网 时间:2024/06/06 05:17
#include "stdafx.h"void Counting_Sort(int a[], int b[], int k,int len){    int c[100];    for (int i = 0; i < k+1; ++i)    {        c[i] = 0;    }    for (int j = 0; j < len; ++j)                            //统计等于i的个数    {        ++c[a[j]];    }    for (int i = 1; i < k+1; ++i)                           //统计小于等于i的个数    {        c[i] = c[i] + c[i - 1];    }    for (int i = len - 1; i > -1; --i)                      //从a数组末尾开始赋值    {        b[c[a[i]]-1] = a[i];                                //数组序号从0开始,故需先减一        --c[a[i]];    }}int _tmain(int argc, _TCHAR* argv[]){    int a[] = { 4, 1, 9, 4, 2, 6, 7, 4, 3, 11, 5 };    int len = sizeof(a) / 4;    int b[sizeof(a)/4];    Counting_Sort(a, b, 11,len);    for (int i = 0; i < sizeof(a)/4; ++i)    {        cout << b[i] << endl;    }    return 0;}
0 0
原创粉丝点击