“高效”排序
以下程序实现输入n个数,使用类似冒泡排序的方法,依次比较相邻的两个数,如果前一个数比后一个大,则交换两者,最终将输入的n个数从小到大排序后输出。程序在运行中发现某遍扫描后所有数据已经有序了,将尽快结束工作。请将程序补充完整。
rogram nbcz09_5;
var n,i,j,tmp:longint;
a:array[1..10000]of longint;
flag:boolean; //本遍扫描有否交换发生
begin
readln(n);
for i:=1 to n do read(a[i]);
i:=1;
_____flag:=true________;
while flag and (i<=n-1) do begin
flag:=false;
for j:=1 to ____n-i___ do
if a[j]>a[j+1] then begin
tmp:=a[j];
_____a[j]:=a[j+1]_____;
a[j+1]:=tmp;
_____flag:=true_____;
end;
_____inc(i)_____;
end;
for i:=1 to n-1 do write(a[i],' ');
writeln(a[n]);
end.