又快又简单的排序---桶排序

104 阅读1分钟

/* 桶排序:

*/

#include

using namespace std;

int main(){ int arr[1001];//假设排序数字范围是0-1000,所以我们需要有1001个桶 int i, j, n, type;

for(i = 0; i<1000; i++){
	arr[i] = 0;//初始化数组 
}

cin>>n;

for(i = 1; i <= n; i++){
	cin>>type;
	arr[type] ++;
} //使用type这个变量将每个出现的数填充到数组中 

for(i = 1000; i >= 0; i--){
	for(j = 1; j <= arr[i]; j++){
		cout<<i<<" ";
	}
}//从大到小输出 

return 0;

}

解释原理: 给1000个数排序就需要准备1001个桶(给10个数排序就准备11个桶)每当一个数字出现,一维数组相应位置就需要+1; 输入结束以后。从后往前遍历,数组内容不为0则输出一次。