排序问题题解大合集
算法1
冒泡排序来算
时间复杂度
参考文献
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i,j,a[101],c=0;
cin>>n;
c=n;
for(i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+1+n);
for(i=1;i<=n;i++){
for(j=1;j<i;j++)
if(a[i]==a[i-j]){
a[i]=-1;
c--;
break;
}
}
cout<<c<<endl;
for(i=1;i<=n;i++)
if(a[i]!=-1)cout<<a[i]<<' ';
}
算法2
(暴力枚举) $O(n^2)$
打标记
时间复杂度
参考文献
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int n,book[100001],x,i,c=0;
int main()
{
cin>>n;
for(i=1;i<=n;i++){
cin>>x;
book[x]=1;
}
for(x=1;x<=100000;x++)
if(book[x]==1)c++;
cout<<c<<endl;
for(x=1;x<=100000;x++)
if(book[x]==1)
cout<<x<<' ';
}