C++算法和数据结构——排序的究极形态
C++算法和数据结构——排序的究极形态
核心思想
桶排序是最简单而且还快速的排序。桶排序类似于物品分类,把对应的东西放入对应的桶里,然后报告桶中有多少件物品,但是桶排序占用的空间太大。尝试做做下面的题吧。
代码
#include <bits/stdc++.h>
using namespace std;
#define MAX 50
int barrel[MAX]; // 设 50个桶,数据最大值只能是 50
int main() {
// 输入数据个数
int n;
cin >> n;
// 循环读入n个数据
for (int i = 0; i < n; i++) {
// 把数据进行分类。例:t[x]++;
int x;
cin >> x;
barrel[x] ++;
// x是数据,t是“分类的桶”。
}
// 依次遍历t
for (int i = 0; i < MAX; i++) {
if (barrel[i] > 0) {
for (int j = 0; j < barrel[i]; j++) {
cout << i << " ";
}
}
}
// t[x]中有几个就输出几个
return 0;
}
下期预告
由于数据较大,需要很多空间,所以下期讲冒泡排序。