(一)读懂题目
关键词:去重、排序
(二)分析算法+时间复杂度和空间复杂度
算法:
肯定是排序算法,就是要哪个排序算法的问题
因为本题要去重+排序,所以桶排序就是不二人选
而且时间复杂度最少,也就O(n)
空间复杂度也还好,不多,因为n<=100,随机数也<=1000
所以——
就你了,桶排序!!
(三)代码实现
众所周知,简单的算法往往只要“简单”的程序便可实现
喏,代码如下
挺简洁的对吧^^
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
int a[1050];
int main(){
cin>>n;
int x;
for(int i=1;i<=n;i++)
{
cin>>x;
a[x]=x;
}
int num=0;
for(int i=1;i<=1000;i++)
{
if(a[i]!=0)
{
num++;
}
}
cout<<num<<endl;
for(int i=1;i<=1000;i++)
{
if(a[i]!=0)
{
cout<<a[i]<<" ";
continue;
}
}
return 0;
}
(四)总结反思
本题主要考的就是排序算法,只要我们熟悉一下,知道每个算法的缺点和优点,就可以判断出本题考的是哪种排序算法
OK,谢幕,下班!!
明天见,See you tomorrow!!
点个赞,谢谢