六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 43|回复: 0

Couting Sort

[复制链接]

升级  0.33%

57

主题

57

主题

57

主题

举人

Rank: 3Rank: 3

积分
201
 楼主| 发表于 2013-1-27 04:50:53 | 显示全部楼层 |阅读模式
CoutingSort
 
#include <stdio.h>#include <stdlib.h>void CountingSort(int A[], int B[], int k,int n){int * C;C=(int *)calloc(k,sizeof(int));for(int i=0;i<n; i++){C[A[i]]++;}for(i=1; i<k; i++){C[i]+=C[i-1];}for(i=n-1; i>=0; --i){B[C[A[i]]-1]=A[i];C[A[i]]--;}free(C);}int main(){int A[]={1,3,3,2,9,6,7,8,5,6,4,3,7};int k=10;int B[13];    CountingSort(A,B,k,13);printf("排序后的数组\n");for(int i=0;i<13;i++){printf("%d\t",B[i]);}} 
注意:
 1.数组初始化
               int * p=(int *) calloc(k,size(int)); 会对内存空间初始化为0、
               int * p=(int *) malloc(k*size(int));不会对内存空间初始化。
 
 2.注意数组下标
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表