代码如下,需要具备计数排序的思想:
#include <iostream>
#include <vector>
using namespace std;
//如果我们只进行0-10的数进行排序
void b_sort(int a[],int n){
vector<int> b(11,0);//b数组受限,待排列数组只能在0-10范围
for(int i=0;i<n;i++){
b[a[i]]++;
//记录每一次出现的次数 ,类似哈希表
}
int j=0;//因为后续需要给数组进行排序,则需要一个变量j,用来记录排序元素的下标
for(int i=0;i<11;i++){//循环遍历b数组进行统计每一个数出现的次数
while(b[i]){//如果出现b[i]存在次数的情况,用循环是因为避免一个数出现2次或更多
a[j]=i;
b[i]--;
j++;
}
}}
int main(){
int a[]={2,4,5,3,1};
b_sort(a,5);
for(int x:a){
cout << x;
}
}
3028

被折叠的 条评论
为什么被折叠?



