题目描述
生成了N个1到1000之间的随机整数,重复的数只留下一个。然后再把这些数从小到大排序。
样例输入
10
20 40 32 67 40 20 89 300 400 15
样例输出
8
15 20 32 40 67 89 300 400
思路
O(2n^2)
把相同的数变为0,冒泡排序。
vari,j,k,l,f:longint;a:array[1..100] of longint;
beginreadln(l);for i:=1 to l do read(a[i]);for i:=1 to l-1 dofor j:=i+1 to l doif (a[i]<>0)and(a[i]=a[j]) thenbegin a[j]:=0;inc(f);end;for i:=1 to l-1 dofor j:=i+1 to l doif a[i]>a[j] then begin k:=a[j];a[j]:=a[i];a[i]:=k;end;writeln(l-f);for i:=f+1 to l dowrite(a[i],' ');
end.