永发信息网

pascal语言插入排序问题

答案:4  悬赏:40  手机版
解决时间 2021-04-30 17:41

书上有一个插入排序的例子,我理解不了,我把发上来,帮忙我理解一下插入排序。

 

program e10_4;

var i,j:integer;

     a:array[0..6] of integer;

begin

for i:=1 to 6 do

read(a[i]);

for i:=2 to 6 do

begin

j:=i;

a[0]:=a[i];

while a[j-1]>a[0] do

 begin

 a[j]:=a[j-1];

 j:=j-1;

end;

a[j]:=a[0];

end;

for i:=1 to 6 do

 write(a[i],' ');

end.

 

 

最佳答案

var
  i, j, k, l: Integer; // 循环变量
  a: array[0..9] of Integer; // 数组
  tmp: Integer; // 临时变量
begin
  for i := 0 to 9 do
    a[i]:= 0; // 清空数组


  for i := 0 to 9 do // 循环读入数值
    begin
    Readln(tmp); // 读数值


    l:= i;
    for j := 0 to i - 1 do // 开始循环比较
    if tmp > a[j] then // 找到比读入大的数
    begin
    l:= j;  // 记录下标
    Break; // 退出比较
    end;


    for k := i - 1 downto l do
    a[k + 1]:= a[k]; // 所有元素后移一位
    a[l]:= tmp; // 当前数值插入数组
    end;


  writeln;


  for i := 0 to 9 do
    Writeln(a[i]);


  readln;


end.


全部回答
就是for i::=1 to n do将第i个元素插入到前i-1个元素中。PS:LS的是选择排序,别误导别人了。

就是枚举每个数,向前寻找要插入的位置插入。

例如   7 3 2 5 4 6

第一次 3 7 2 5 4 6 第二次 2 3 7 5 4 6 第三次 2 3 5 7 4 6 第四次 2 3 4 5 7 6 第五次 2 3 4 5 6 7

不过我比较喜欢用冒泡,代码比较短又好理解。

for i:=1 to n do

  for j:=i+1 to n do

   if a[i]>a[j] then

    begin t:=a[i];a[i]:=a[j];a[j]:=t;end;

拓扑排序(从小到大)Program sort;Var a: Array[1..10] Of Integer; n, i: Integer;Procedure Quick_sort(l, r: Integer);Var i, j, t, x: Integer;Begin i := l; j := r; x := a[(i + j) Div 2]; Repeat While a[i] < x Do Inc(i); While a[j] > x 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 l < j Then Quick_sort(l, j); If i < r Then Quick_sort(i, r);End;Begin ReadLn(n); For i:=1 To n Do Read(a[i]); Quick_sort(1, n); For i:=1 To n Do Write(a[i], ' ');End.选择排序(从小到大)Program sort;Var a: Array[1..10] Of Integer; n, i, j, t: Integer;Begin ReadLn(n); For i:=1 To n Do Read(a[i]); For i:=1 To n-1 Do For j:=i+1 To n Do If a[i] > a[j] Then Begin t := a[i]; a[i] := a[j]; a[j] := t; End; For i:=1 To n Do Write(a[i], ' ');End.有问题发邮件649187156@qq.com
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
艾弗森2008赛际在哪支球队打球?
求安徽教育出版社九年级苏教版上册语文基础训
谢娜和张杰分手了吗?原因?
怀孕可不可以吃梨
人生最大的挫折是什么?
qq三国黄巾前哨任务流程
九兴新区王于今五街/九兴新区沙于今三街(路口
请问注塑原理是什么
静静的一个人就好.
为什么我上传的相片只有我看得到,在好友动态
QQ聊天的时候字怎么输入有颜色的字?
各位吃友~~串串香你们都希望能有什么串?~~咋
妇科病 急…
Windows 7的优点在那?
权力和义务的名言中国,描写中国某一传统节日
推荐资讯
上学可老爸不把带手机咋办阿?
想换个cpu 能换吗 高手进来看看
没有情人七夕怎么过啊
南山区深圳home青年公寓华侨城店这个地址怎么
南京哪里有正规的唱片店?
已知电流计的内阻Rg=100欧姆。。满偏电流Ig=1
脸上怎么油油的啊?用什么方法可以去掉?
DNF连发给我吧
电影阿甘正传里面,阿甘真的和中国的国球选手
寻仙里哪三个图的经验高啊??价格是好多??
书包的拉链坏了怎么办,背包拉链坏了_怎么办
50女破碎头值多少钱?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?