pascal選擇排序程式(我絕對錯)

2025-01-25 17:30:11 字數 1604 閱讀 8720

1樓:sky之痕

var a:array[1..1000] of integer;

n,m,i,j,l:integer;

beginreadln(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 beginl:=a[i];

a[i]:=a[j];

a[j]:=l;

m:=m+1;

end;writeln(m);

for i:=1 to n do write(a[i]);

end.~~你故意的,還是真是這個水平啊? 呃。快排。

var a:array[0..1001] of integer;

n,k,i:integer;

procedure qsort(l,h:integer);

vari,j,t,m:integer;

begini:=l; j:=h; m:=a[(i+j) div 2];

repeat

while a[i]>m do inc(i);

while m>a[j] do dec(j);

if i<=j then

begint:=a[i]; a[i]:=a[j]; a[j]:=t;

inc(i); dec(j); inc(k);

end;until i>j;

if il then qsort(l,j);

end;begin

readln(n);

for i:=1 to n do read(a[i]);

qsort(1,n);

writeln(k);

for i:=1 to n do write(a[i]);

end.

2樓:網友

var a[1..1000]

n,m,i,j,k,l:integer;

beginreadln(n);

for i:=1 to n do

read(a[i]);

beginfor i:=1 to n-1 dok:=i;begin

for j:=i+1 to n do

if a[j]>a[k] then k:=jend;if k<>i then

begin l:=a[i];

a[i]:=a[k];

a[k]:=l;

m:=m+1;

end;end;

writeln(m);

i:=1 to n do

write(a[i])

end. 這個保留了k變數,可減少交換次數。

3樓:網友

m是什麼,最少交換次數?

樓主該把題說清。

請幫我看一下這個pascal程式**錯了

4樓:莫入紅塵

你這爆搜啥剪枝也沒有不超時才怪。。。

5樓:大蝦的海角

這個程式應該是最省的了,應該是資料有問題,要改進的話只能別用過程。

C程式關於指標氣泡排序法,一個C程式關於指標氣泡排序法

define n 10 include stdio.h void sort int p1,int n main p a int i puts before invert for i 0 i puts ninverting.p a sort p,n printf leter for i 0 i mai...

C語言編寫程式用氣泡排序實現降序排列

include void main printf 排序後的數字為 for i 0 i 9 i printf d p i printf n 氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數...

這數排序,沒看懂這個程式,求大神可以幫忙解釋一下

網上bai找的,其它跟我的思du路一樣,直接轉來.沒註冊類別zhi是原因是 程式調dao用com元件失敗,被調回用的com元件沒有註冊答 解決問題的根本辦法是看程式呼叫的是哪個元件,對應哪個檔案,手動註冊一下也許可以解決。我碰到這個問題的情況是64位系統下,有些元件 微軟的 只有32位版本,64位的...