PASCAL 排序

来源:百度知道 编辑:UC知道 时间:2024/06/23 02:25:59
怎样用PASCAL对任意一组实数(用户输入)排序
我说的是实数(REAL)排序, 不是整数(INTEGER)排序, 而且对数值和一组多少数都没有限制

简单的选择排序;
program selectsort;
var a:array[1..100]of longint;
i,j,n,temp:longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do
for j:=i to n do
if a[i]>a[j] then begin
temp:=a[i];
a[i]:=a[j];
a[j]:=temp;
end;
for i:=1 to n do write(a[i],' ');
end.

有多种排序方法。
用得比较多的而且比较快的就是快速排序。
这里是快排的过程(a是要排序的数组):
proceduer kp(l,r:integer);
var c,d,e,f:integer;
begin
c:=l;d:=r;e:=a[(l+r) div 2];
repeat
while a[c]<e do inc(c);
while a[d]>e do dec(d);
if c<=d then begin
f:=a[c];a[c]:=a[d];a[d]:=f;
inc(c);
dec(d);
end;
until c>d;
if c<r then kp(c,r);
if l<d then kp(l,d);
end;

我也是刚学,给你个思路把
var
i,j:integer;
a:array[1..100]of integer;(最多100个数)
begin
readln(i);(输入有几个数)
for i:=1 to i do
readln(a[i]);
之后的就是排序了~~我也不怎么懂的说..

现在一般用两