计数排序

#include<stdio.h>void CountingSort(int *arrA,int *arrB,int k,int length){ int c[k+1]; memset(c,0,sizeof(c)); int i=1; for(;i<=length;i++) { c[arrA[i]]=c[arrA[i]]+1; } i=1; for(;i<=k;i++) { c[i]=c[i-1]+c[i]; } i=length; for(;i>=1;i–) { arrB[c[arrA[i]]]=arrA[i]; c[arrA[i]]=c[arrA[i]]-1; }}int main(){ int arrA[]={0,12,44,0,2,3,24,5,23,56,32,45,5,5,0,45,64}; int length=sizeof(arrA)/sizeof(arrA[0])-1; int max=arrA[1]; int i=1; for(;i<=length;i++) { if(arrA[i]>max) max=arrA[i]; } int k=max; int arrB[length+1]; CountingSort(arrA,arrB,k,length); i=1; for(;i<=length;i++) printf(“%d “,arrB[i]); system(“pause”); return 0;}

,用开怀的笑容去迎接每一个黎明,

计数排序

相关文章:

你感兴趣的文章:

标签云: