PASCAL冒气泡法
- 提问者网友:护她一生,唯爱
- 2021-04-27 22:41
- 二级知识专家网友:我们只是兮以城空
- 2021-04-27 22:46
N=20;
MAX=10;
var
a:array[1..N] of 1..MAX;
temp,i,j:integer;
begin
randomize;
for i:=1 to N do a:=1+random(MAX);
writeln('Array before sorted:');
for i:=1 to N do write(a,' ');
writeln;
for i:=N-1 downto 1 do
for j:=1 to i do
if a[j]<a[j+1] then
begin
temp:=a[j];
a[j]:=a[j+1];
a[j+1]:=temp
end;
writeln('Array sorted:');
for i:=1 to N do write(a,' ');
writeln;
writeln('End sorted.');
readln;
end.
- 1楼网友:魅世女王
- 2021-04-28 01:30
冒泡:var i,j,t:integer; a:array[1..10]of integer; flag:boolean; begin for i:=1 to 10 do read(a[i]); for i:=1 to 9 do begin flag:=true; for j:=9 downto i do if a[j]<a[j+1] then begin flag:=false;t:=a[j];a[j]:=a[j+1];a[j+1]:=t;end;if flag then break;end; for i:=1 to 10 do write(a[i],' ');writeln; end.
不过冒泡我不咋用,还是快排强:
var i,j,n:integer;a:array[1..1000]of integer; procedure qsort(top,bot:integer); var i,j,t:integer; begin i:=top;j:=bot; m:=a[(i+j) div 2]; repeat while a[i]<m do inc(i); while a[j]>m do dec(j); if i<=j then begin t:=a[i];a[i]:=a[j];a[j]:=t; inc(i);dec(j); end; until i>j; if i<bot then qsort(i,bot); if j>top then qsort(top,j); end; begin readln(n); for i:=1 to n do read(a[i]); qsort(1,n); for i:=1 to n do write(a[i],' ');writeln; end.
- 2楼网友:哥在撩妹请勿打扰
- 2021-04-28 01:10
- 3楼网友:疯山鬼
- 2021-04-28 00:35
procedure sort; var i,j,k:integer; begin for i:=n downto 1 do for j:=1 to i-1 do if a[j] >a[i] then begin a[0]:=a[i];a[i]:=a[j];a[j]:=a[0]; end; end; 这个是子程序
这个是主程序
3.冒泡排序
冒泡排序又称交换排序其基本思想是:对待排序的记录的关键字进行两两比较,如发现两个
记录是反序的,则进行交换,直到无反序的记录为止。
例:输入序列数据按非减顺序输出。
程序1:
program mppx; const n=7; var a:array[1..n] of integer; i,j,k,t:integer; begin write('Enter date:'); for i:= 1 to n do read(a[i]); for i:=1 to n -1 do for j:=n downto i+1 do if a[j-1]<a[j] then begin t:=a[j-1];a[j-1]:=a[j];a[j]:=t end; write('output data:'); for i:= 1 to n do write(a[i]:6); writeln; end.
- 4楼网友:风格单纯
- 2021-04-27 23:42