Couting Sort
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]++;}for(i=1; i<k; i++){C+=C;}for(i=n-1; i>=0; --i){B]-1]=A;C]--;}free(C);}int main(){int A[]={1,3,3,2,9,6,7,8,5,6,4,3,7};int k=10;int B; CountingSort(A,B,k,13);printf("排序后的数组\n");for(int i=0;i<13;i++){printf("%d\t",B);}}
注意:
1.数组初始化
int * p=(int *) calloc(k,size(int)); 会对内存空间初始化为0、
int * p=(int *) malloc(k*size(int));不会对内存空间初始化。
2.注意数组下标
页:
[1]