文档详情

pascal排序算法1选编.ppt

发布:2017-04-19约6.76千字共52页下载文档
文本预览下载声明
排序算法;什么是排序? 排序是处理数据过程中一种很常用的运算,是将一组原本无序的数据元素,通过一定的方法,按照某个域的值(关键字)递增或递减的次序重新排列的过程。;什么是稳定性?;1. 选择排序;;;;;;;;;;;;;program selectsort; const mx=1000; var d:array[1..mx]of longint; n,i,j,k:longint; begin readln(n); for i:=1 to n do read(d[i]); for i:=1 to n-1 do begin k:=i; for j:=i+1 to n do //d[k]为d[i]..d[n]的最小元素 if d[j]d[k] then k:=j; j:=d[k]; d[k]:=d[i]; d[i]:=j; //交换 end; for i:=1 to n do writeln(d[i]); end.;program selectpro; const mx=1000; var d:array[1..mx]of longint; n,i,j,k:longint; begin readln(n); for i:=1 to n do read(d[i]); for i:=1 to n-1 do begin k:=i; for j:=i+1 to n do //d[k]为d[i]..d[n]的最小元素 if d[j]d[k] then k:=j; if ki then //交换 begin j:=d[k]; d[k]:=d[i]; d[i]:=j; end; end; for i:=1 to n do writeln(d[i]); end.;2.冒泡排序; 初始关键字:[225 220 41 190 242 185 42 231] 第一趟排序后:[220 41 190 225 185 42 231] 242 第二趟排序后:[41 190 220 185 42 225] 231 242 第三趟排序后:[41 190 185 42 220] 225 231 242 第四趟排序后:[41 185 42 190] 220 225 231 242 第五趟排序后:[41 42 185] 190 220 225 231 242 第六趟排序后:[41 42] 185 190 220 225 231 242 第七趟排序后:[41] 42 185 190 220 225 231 242;program maopaosort; const mx=10000; var d:array[1..mx]of longint; n,i,j,k:longint; begin readln(n); for i:=1 to n do read(d[i]); for i:=1 to n-1 do for j:=2 to n-i+1 do if d[j]d[j-1] then begin //相邻元素交换 k:=d[j]; d[j]:=d[j-1]; d[j-1]:=k; end; for i:=1 to n do writeln(d[i]); end.;program maopao1; const mx=10000; var d:array[1..mx]of longint; n,i,j,k:longint; sorted:boolean; //是否有序 begin readln(n); for i:=1 to n do read(d[i]); sorted:=false; i:=1; while not sorted do begin sorted:=true; //假定已有序 for j:=n-1 downto i do if d[j+1]d[j] then begin sorted:=false; //有交换发生
显示全部
相似文档