冒泡排序

[复制链接]
发表于 2023-12-23 11:50:51 | 显示全部楼层 |阅读模式
冒泡排序
冒泡排序又称交换排序其基本思想是:对待排序的记录的关键字进行两两比较,如发现两个
记录是反序的,则进行交换,直到无反序的记录为止。
例:输入序列数据按非减顺序输出。
程序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);
     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]:=tend;
     write('output data:');
     for i:= 1 to n do write(a:6);
     writeln;
end.
程序2:
program mppx;
const n=7;
var a:array[1..n] of integer;
    i,j,k,t:integer;
    bool:boolean;
begin
     write('Enter date:');
     for i:= 1 to n do read(a);
     i:=1;bool:=true;
     while (i<n) and bool do
      begin
      bool:=false;
      for j:=n downto i+1 do
       if a[j-1]<a[j] then
        begint:=a[j-1];a[j-1]:=a[j];a[j]:=t;bool:=true end;
      i:=i+1;
      end;
     write('output data:');
     for i:= 1 to n do write(a:6);
     writeln;
end.
 
程序3:
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);
writeln;
  k:=n;
  while k>0 do
  begin
   j:=k-1;k:=0;
   for i:=1 to j do
    if a>a[i+1] then
     begin t:=a;a:=a[i+1];a[i+1]:=t;k:=i;end;
  end;
write('output data:');
for i:= 1 to n do write(a:6);
writeln;
end. 

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表