1.快速排序:
procedure qsort(l,r:integer);
var i,j,mid:integer;
begin
i:=l;j:=r; mid:=a[(l+r) div 2];
repeat
while a[i]mid do dec(j);
if i<=j then begin
swap(a[i],a[j]);
inc(i);dec(j);
end;
until i>j;
if lb.插入排序:
思路:當前a[1]..a[i-1]已排好序了,現要插入a[i]使a[1]..a[i]有序。
procedure insert_sort;
var i,j:integer;
begin
for i:=2 to n do begin
a[0]:=a[i];
j:=i-1;
while a[0]c.選擇排序:
procedure sort;
var i,j,k:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then swap(a[i],a[j]);
end;
d. 氣泡排序
procedure bubble_sort;
var i,j,k:integer;
begin
for i:=1 to n-1 do
for j:=n downto i+1 do
if a[j]e.堆排序:
procedure sift(i,m:integer);
var k:integer;
begin
a[0]:=a[i]; k:=2*i;
while k<=m do begin
if (kprocedure heapsort;
varj:integer;
begin
for j:=n div 2 downto 1 do sift(j,n);
for j:=n downto 2 do begin
swap(a[1],a[j]);
sift(1,j-1);
end;
end;
f. 歸併排序
procedure merge(var a:listtype; p,q,r:integer);
var i,j,t:integer;
tmp:listtype;
begin
t:=p;i:=p;j:=q+1;
while (t<=r) do begin
if (i<=q) and ((j>r) or (a[i]<=a[j]))
then begin
tmp[t]:=a[i]; inc(i);
endelse begin
tmp[t]:=a[j];inc(j);
end;
inc(t);
end;
for i:=p to r do a[i]:=tmp[i];
end;
procedure merge_sort(var a:listtype; p,r: integer);
var q:integer;
begin
if p<>r then begin
q:=(p+r-1) div 2;
merge_sort (a,p,q);
merge_sort (a,q+1,r);
merge (a,p,q,r);
end;
end;
begin
merge_sort(a,1,n);
end.
g.基數排序
思想:對每個元素按從低位到高位對每一位進行一次排序
四 排序演算法 快速排序
快速排序的思想 選擇陣列中的一個數作為中軸線,然後以這個中軸線為中心,大於中軸線的資料放到右邊,小於中軸線的資料放到左邊,然後每次比較完後再變中軸線的位置,不斷比較下去 include using namespace std template void quick sort t arry,int l...
C C 演算法例項(四) 排序演算法
a.快速排序 procedure qsort l,r integer var i,j,mid integer begin i l j r mid a l r div 2 repeat while a i 在左半部分尋找比中間數大的數 while a j mid do dec j if i j the...
演算法 排序1 排序
題目 給定n個 長整型範圍內的 整數,要求輸出從小到大排序後的結果。本題旨在測試各種不同的排序演算法在各種資料情況下的表現。各組測試資料特點如下 輸入第一行給出正整數n 10 5 隨後一行給出n個 長整型範圍內的 整數,其間以空格分隔。在一行中輸出從小到大排序後的結果,數字間以1個空格分隔,行末不得...
演算法1 排序
氣泡排序 氣泡排序,比較相鄰的元素由小到大排序 function bubblesort arr return arr view code 快速排序 以基數為標準,最右開始查小於基數停止,最左邊開始查大於基數停止,互換位置停止的位置 left right表示基數左為小於基數,基數右大於基數的 拆分基數...
8 排序演算法
1 氣泡排序 bubble sort 演算法描述 比較相鄰的元素。如果第一個比第二個大,就交換它們兩個 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應該會是最大的數 針對所有的元素重複以上的步驟,除了最後一個 重複步驟1 3,直到排序完成。實現 public clas...