C 問題 以下對10個整數排序 看不懂那演算法 可以解釋下嗎?

時間 2022-11-29 07:20:06

1樓:匿名使用者

這是選擇排序法。

for(i=1;i<=9;i++)

{min=i;

for(j=i+1;j<=10;j++)

if(a[min]>a[j]) min=j;

你可以拆開來看。第一次大迴圈找出最小的數放在第乙個位置,第二次大迴圈找到第二小的放在第二個位置。依此類推。

小迴圈就是找出當前大迴圈下的最小的數。後面的數哪個比a[min]小,就把它的下標給min.找出最小的。

這個是冒泡的改進版。大體思想差不多。

2樓:徐巨集偉我愛你

1.對於含有是個數字的陣列a[10];

2.進行排序的時候 就是用前面的數字和後面的所有數字比較 只要後面的有比第前面的小的 就交換;

和 a[1]--a[9]比較;

和 a[2]--a[9]比較;

。。。和 a[9] 比較;

10.兩層迴圈實現上面3---9步:

for(i=1;i<=9;i++)第一層。

a[i]=a[min];

a[min]=temp;這三行** 實現交換功能。

c語言,以下程式的輸出結果是,C語言問題 以下程式的輸出結果是?

輸出1 3 這是遞迴了,所以先是fun 3 進入後發現3 2 1,所以又繼續func 3 2 也就是fun 1 進入發現1 2 0,就執行prinft,輸出1,然後fun 1 就返回了 返回出去正好是fun 3 的prinft,輸出3 進入fun 3 進入fun 1 輸出1退出fun 1 輸出3退出...

以下程式的輸出結果是,C語言問題 以下程式的輸出結果是?

c語言函式引數都是單向傳遞的,直接傳值是不可能改變原來的數值的。此題答案30,20 你的printf好像有點問題 include void fun int p1,int p2,int p3 main 按lz所寫 輸出為30,20,因為函式的引數為所宣告變數的副本,這樣不會改變原有的變數。如果想改變原...

c函式相關問題,c 函式模板 相關問題 10

2.1 函式模板的定義 不管它們的性質如何,所有的函式模板都具有同樣的基本格式 template 函式頭 函式體 例如,下面是一個2引數的模板的宣告 template t max t param1 t param2 2.根據上面已定義的模板,編譯器將可生成下面的模板函式 都是對的,函式模板的目的就是...