zoukankan      html  css  js  c++  java
  • 计数排序

    #include<stdio.h>
    #include<stdlib.h>
    void count_sort(int A[],int B[],int N) { /* **A:原数组 **B:排序后数组 **N:AB数组的长度 */ /* **计算原数组中数据的范围,确定count的长度 */ int max=A[0]; int min=A[0]; int i; for(i=0;i<N;i++) { max=(max>A[i])?max:A[i]; min=(min<A[i])?min:A[i]; } int length=max-min+1; /* **创建并初始化count */ int *count=(int *)malloc(sizeof(int)*length); if(NULL==count) { printf("F"); exit(1); } for(i=0;i<length;i++)/*错误✖2:没有初始化*/ { count[i]=0; } /* **计数数组 */ for(i=0;i<N;i++) { count[A[i]-min]++; } /* **累加数组 */ for(i=1;i<length;i++)/*粗心的错误:i<N*/ { count[i]=count[i]+count[i-1]; } /* **反向填充目标数组 */ for(i=N-1;i>=0;i--)/*i--*/ { B[count[A[i]]-1]=A[i]; count[A[i]]--; } /* **释放内存 */ free(count); } int main() { int A[40]={1,6,7,5,2,3,4,9,0,5,9,6,3,1,4,8,5,2,0,7,6,4,1,3,2,9,8,7,0,6,4,9,1,3,5,7,8,9,6,7}; int N=40; int B[40]={0}; count_sort(A,B,N); int i; for(i=0;i<N;i++) { printf("%d ",B[i]); } return 0; }
  • 相关阅读:
    *Delete Duplicate Emails
    Rising Temperature [MySQL]
    mysql链接表,connection string, federated engine
    谷歌在招什么样的人?
    用memcached的时候找key找不到,写了个命令来找找
    jna
    绕树三匝,无枝可依
    vm lxc
    linux proxy
    elisp
  • 原文地址:https://www.cnblogs.com/angury/p/13033423.html
Copyright © 2011-2022 走看看