【基础排序】鸟巢排序
来源:互联网 发布:mac vpn设置 编辑:程序博客网 时间:2024/05/01 08:55
//鸟巢排序#include <iostream> using namespace std; void pigen_hole_sort(int *array,int length); int main() { int a[] = {4,6,1,8,9,2,3,5,7,0,1,10,19,12,16,14}; int n = sizeof(a)/sizeof(a[0]); pigen_hole_sort(a,n); for(int i=0; i!=n; i++) {cout << a[i] << " "; } cout<<endl; return -1; } void pigen_hole_sort(int *a, int length) { int max = a[0];for(int k=0; k!=length; k++){if(max<a[k]){max=a[k];}}int *b = new int[max+1];memset(b,0,sizeof(int)*(max+1));//int b[256] = {0}; for(int i=0; i!=length; i++) {b[a[i]]++; }int index=0; for(int j=0; j!=max+1; j++) {for(int k=0; k<b[j]; k++) {a[index++] = j; }}}