算法导论 计数排序

来源:互联网 发布:多久贴一次面膜知乎 编辑:程序博客网 时间:2024/06/13 09:11
#include <stdio.h>#include <stdlib.h>#include <limits.h>void countingSort(int a[],int b[],int k,int len){int *c=(int*)malloc((k+1)*sizeof(int));int i;for(i=0;i<=k;i++){c[i]=0;}for(i=1;i<=len;i++){c[a[i]]++;}for(i=1;i<=k;i++){c[i]+=c[i-1];}for(i=len;i>=1;i--){b[c[a[i]]]=a[i];c[a[i]]--;}free(c);}void printA(int a[],int len){for(int i=1;i<=len;i++){printf("%d ",a[i]);}printf("\n");}void main(){int a[9]={INT_MIN,2,5,3,0,2,3,0,3};int b[9];int k=5;countingSort(a,b,k,8);printA(b,8);getchar();}

0 0
原创粉丝点击