为什么是紫色炸弹

tctm169 杀手 2024-09-15 20:10:39 8

#include using namespace std; int main(){ //贪心算法: 使每个子问题达到最优,合并得到原问题的最优 //每次都做出当前的最优选择。

//三级: 结构体排序、枚举、递推、递归 

//排序算法
//排序概念: 将一个序列按一定顺序排列
//1. 桶排序(计数排序)
//算法思路: 将待排序元素当作数组下标,做标记。
//时间复杂度:  O(N)
//优点: 速度快
//缺点: 空间利用率不高
//适用情景: 数字较小 
//注意事项: 用于桶排序的数组的长度由谁来决定?  最大的那个排序元素	 

//例题: 输入n个整数(n<=100,整数<=1000),输出n个整数的升序结果
//样例输入: 5
//          5 2 7 8 10
//样例输出:2 5 7 8 10
int n;
cin>>n;
int a[105]; //存储n个整数
int b[1005]={}; //桶  b[i]:数字i是否出现 
for(int i=1;i<=n;i++){
	cin>>a[i];
	b[a[i]]=1;//标记桶中数字a[i]出现  (核心)
} 
for(int i=0;i<=1000;i++){ //所有排序元素的范围 
	if(b[i]==1){
		cout<<i<<" "; 
	} 
} 


	//例题: 输入n个整数(n<=100,整数<=1000),输出n个整数的升序结果
//样例输入: 5
//          5 9 9 9 10
//样例输出:5 9 9 9 10

// int n; // cin>>n; // int a[105]; //存储n个整数 // int b[1005]={}; //桶 b[i]:数字i是否出现 // for(int i=1;i<=n;i++){ // cin>>a[i]; // b[a[i]]++;//标记桶中数字a[i]出现的次数 (核心) // }
// for(int i=0;i<=1000;i++){ //所有排序元素的范围 // if(b[i]!=0){ //数字i的次数不为0 // //循环b[i]次输出i // for(int j=1;j<=b[i];j++){ // cout<<i<<" "; // } // } // }

return 0;

}

{{ vote && vote.total.up }}

共 2 条回复

root 站长

还有,数组开的太小了,这个题目是 20000,你开了 100, 不炸你炸谁

root 站长

每个整数大于等于10、小于等于5000。