1樓:網友
vara:array[0..10001] of longint;
n,i,j,k,ans:longint;
beginreadln(n);
for i:=1 to n do
read(a[i]);
for i:=1 to n do
for j:=1 to n-1 do
if a[j]>a[j+1] then
begink:=a[j];
a[j]:=a[j+1];
a[j+1]:=k;
inc(ans);
end;writeln(ans);
end.第二題網上非常好找。
2樓:網友
無語。沒資料範圍嗎?那就冒泡吧,就兩行**。
pascal排序怎麼寫
3樓:
1.快速排序:
procedure qsort(l,r:integer);
var i,j,mid:integer;
begini:=l;j:=r; mid:=a[(l+r) div 2];
repeat
while amid do dec(j);
if i<=j then begin
swap(a,a[j]);
inc(i);dec(j);
end;until i>j;
if la[j] then swap(a,a[j]);
end;d. 氣泡排序。
procedure bubble_sort;
var i,j,k:integer;
beginfor i:=1 to n-1 do
for j:=n downto i+1 doif a[j]r) or (a<=a[j]))then begin
tmp[t]:=a; inc(i);
endelse begin
tmp[t]:=a[j];inc(j);
end;inc(t);
end;for i:=p to r do a:=tmp;
end;procedure merge_sort(var a:listtype; p,r: integer);
var q:integer;
beginif 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;
beginmerge_sort(a,1,n);
基數排序。思想:對每個元素按從低位到高位對每一位進行一次排序。
pascal插入排序法是什麼意思,舉個例子,再詳細說清細節,就給分。
4樓:匿名使用者
有乙個已經有序的資料序列,要求在這個已經排好的資料序列中插入乙個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法——插入排序法,插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的、個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為o(n^2)。是穩定的排序方法。插入演算法把要排序的陣列分成兩部分:
第一部分包含了這個陣列的所有元素,但將最後乙個元素除外,而第二部分就只包含這乙個元素。在第一部分排序後,再按遞增序進行插入排序。
procedure insertsort(var r : filetype);
對r[1..n],r[0]是監視哨//
beginfor i :=2 to n do //依次插入r[2],.r[n]//
beginr[0] :r[i]; j :=i - 1;
while r[0] beginr[j+1] :r[j]; 將大於r[i]的元素後移//
j :=j - 1
endr[j + 1] :r[0] ;插入r[i] /
endend; /insertsort //把這個最後元素插入到此刻已是有序的第一部分裡的位置。
5樓:匿名使用者
就是建乙個陣列,每讀入乙個數就從陣列的首位到末位搜一遍,插入到合適地方。
比如2 5 3 7 4
一種**(直接插入排序):
vara:array[1..1000] of integer;
i,j,k,n,m:integer;
beginreadln(n);
read(a[1]);
for i:=2 to n do
beginread(k);
j:=1;while (k>a[j])and(j<=n) do j:=j+1;
for m:=n downto j do a[m+1]:=a[m];
a[j]:=k;
end;for i:=1 to n do write(a[i],'
readln;readln;
end.
c 排序演算法,氣泡排序法C 演算法
1.排序演算法在實際中的應用當然也就是排序了。在實際應用當中比如資料統計等方面都會用到。而且對一組資料進行排序也方便了後面對資料查詢的操作。要知道在一個有序陣列中查詢和在一個隨機無序陣列中的查詢的時間複雜度和系統消耗是有天壤之別的。2.演算法複雜度其實是一個估計,也就是那個o n 首先o這個操作的定...
設計n個數的排序演算法,並要求計算演算法複雜度
訾可欣迮詞 氣泡排序的演算法時間複雜度上o n 2 氣泡排序是這樣實現的 首先將所有待排序的數字放入工作列表中。從列表的第一個數字到倒數第二個數字,逐個檢查 若某一位上的數字大於他的下一位,則將它與它的下一位交換。重複2號步驟,直至再也不能交換。氣泡排序的平均時間複雜度與插入排序相同,也是平方級的,...
時間複雜度相同的演算法一樣好嗎,氣泡排序演算法的時間複雜度是什麼
大二的猴 如果只分析你上面段程度,顯然方法二做了許多無用功,當然一好。時間複雜度估的是個時間隨規模n增長的趨勢,他倆的趨勢是一樣的。給定規模n,如果方法二能跑,那方法一肯定能跑,只不過比前者多常數倍時間而已,你跑1秒,我不過跑2秒而已,你跑一天,我跑倆天而已,你要跑一年以上,那勸你還是找個更快的演算...