计数排序

来源:互联网 发布:软件皮肤下载 编辑:程序博客网 时间:2024/05/16 00:59
#include<iostream>using namespace std;void print_array(int a[] , int n){for(int i = 0 ; i < n  ; i++){cout<<" "<< a[i];}cout<<endl;}void count_sort(int *a,int length_ab,int *b,int k){int *c = new int[k];for(size_t i =0;i<=k;i++)c[i]=0;//数组初始化for(size_t j =0;j<length_ab;j++)c[a[j]]++;//重复数计数for(size_t m = 1;m<=k;m++)c[m]=c[m]+c[m-1];//小于或等于k的值//print_array(c,k+1);for(int d=length_ab-1;d>=0;d--){b[c[a[d]]-1] = a[d];//定位c[a[d]]--;//重复数左移}}int main(){    int k = 5;int a[8] = {2,5,3,0,2,3,0,3};cout<<"before heapsort"<<endl;print_array(a,8);int b[8]={0,0,0,0,0,0,0,0};cout<<endl;count_sort(a,8,b,k);cout<<"after heapsort"<<endl;print_array(b,8);}
解释见注释
0 0
原创粉丝点击