#include <bits/stdc++.h>
using namespace std;
int a[10];//定义全局数组
void tong_Sort(int *a){ //注意本例没有改变原数组
int b[10] = {0}; //定义新数组全部为0
for (int i = 0; i < 10; i++) //遍历
b[a[i]]++; //a[i]数组有的数作为下标给b数组+1
for (int i = 0; i < 10; i++) //遍历
for (int j = b[i]; j > 0; j--) //若b[i]有值(可能不只一个)
cout << i << " "; //输出下标,亦即组a有的数
cout << endl; //换行
}//本例排序法必须保证待排序数组是连续的,否则需先离散化,不然b[i]会太大
int main(){
for(int i=0;i<10;++i)a[i]=i; //0~9依次赋值
cout << "tong_Sort:" << endl; //提示语
random_shuffle(a, a + 9); //随机排序
for(int i=0; i<10;++i)cout<<a[i]<<" ";cout << endl; //输出数组
tong_Sort(a); //基数排序(桶排序)
return 0;
}
5排序-4基数排序(桶排序)
最新推荐文章于 2022-02-14 20:39:51 发布