作家崔成浩换人了?:在线的同仁们!!!急求pascal数组的排序方法!!

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 23:52:42
越简单越好!!!!!!!还要稳定的
到底有多少种呢?你会多少,就发多少吧,本人来者不拒
Q:582429758 加时注明:百度知道 就行拉!!

选择排序:
1:Program paixu;
2:var
3: a:array[1..20] of real;
4: temp:real;
5: i,j,k:integer;
6:begin
7: for i := 1 to 20 do
8: read(a[i]);
9: for i := 1 to 19 do
10: begin
11: k:=i;
12: for j:= i+1 to 20 do
13: if a[k]<a[j] then
14: k:=j;
15: if i<>k then
16: begin
17: temp:=a[i];
18: a[i]:=a[k];
19: a[k]:=temp;
20: end
21: end;
22:for i := 1 to 20 do
23: write(a[i]);
24:readln
25:end.
冒泡排序:
1:Program paixu;
2:var
3: a:array[1..20] of real;
4: temp:real;
5: i,j:integer;
6: flag:boolean;
7:begin
8: for i := 1 to 20 do
9: read(a[i]);
10: i:=1;
11: repeat
12: flag:=true;
13: for j:= 1 to 20-i do
14: if a[j]<a[j+1] then
15: begin
16: temp:=a[j];
17: a[j]:=a[j+1];
18: a[j+1]:=temp;
19: flag:=false
20: end
21: until flag;
22:for i := 1 to 20 do
23: write(a[i]);
24:readln
25:end.
查找排序:
<!递归不一定稳定!>
1:Program paixu;
2:const n=maxint;
3:var
4: a:array[1..n] of integer;
5: i:integer;
6:procedure sort(l,r: integer);
7: var
8: i,j,x,y: integer;
9: begin
10: i:=l;j:=r;
11: x:=a[(l+r) div 2];
12: repeat
13: while a[i]<x do inc(i);
14: while x<a[j] do dec(j);
15: if not(i>j) then begin
16: y:=a[i];
17: a[i]:=a[j];
18: a[j]:=y;
19: inc(i);dec(j);
20: end;
21: until i>j;
22: if l<j then sort(l,j);
23: if i<r then sort(i,r);
24: end;
25:begin
26:for i := 1 to n do
27: read(a[i];
28:sort(1,n);
29:readln
30:end.
多给点悬赏吧!
☆★§○●◎◇◆□■△▲☆★§○●◎◇◆□■△▲☆★§○●◎◇◆□■△▲☆★§○●◎◇◆□■△▲☆★§○●◎◇◆□■△▲☆★§○●◎◇◆□■△▲☆★§○●◎◇◆□■△▲☆★§

快速排序:
const n=100000;
var
a:array[1..n] of longint;

procedure sort(l,r: longint);
var
i,j,x,y: longint;
begin
i:=l;j:=r;
x:=a[(l+r) div 2];
repeat
while a[i]<x do inc(i);
while x<a[j] do dec(j);
if not(i>j) then begin
y:=a[i];
a[i]:=a[j];
a[j]:=y;
inc(i);dec(j);
end;
until i>j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end;

begin
读数据(不要写了吧....)
sort(1,n);
end.