看板 Grad-ProbAsk 關於我們 聯絡資訊
http://imgur.com/LwpF53p 想問題組11 (31) 題目我的解讀是 輸入:n個數字全相異的陣列 輸出:排序好的陣列(遞增) 這題我手邊的答案是 C 可是我trace出來之後的結果怪怪的 所以就把它用C++跑一次 出來的結果也不是排序好的陣列 以下是我的程式碼跟測資 編譯環境是code blocks #include<iostream> using namespace std; int main() { int a[7] = {5, 7, 9, 8, 4, 3, 6}; int m,t; for(int i=6; i>=1; i--) { m = i; for(int j=0; j<=i-1; j++) { if(a[j]>a[m]) { m = j; } t = a[m]; a[m] = a[i]; a[i] = t; } } for(int i=0; i<7 ; i++) cout<<a[i]<<" "; return 0; } 每個選項我都有去試過了 出來結果沒有一個是排序好的陣列 想請問是我的哪邊想法錯了 或是這題沒有答案? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.115.50.29 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1450935324.A.49F.html
tsoahans: a[j]>a[m]錯了吧 你都換過去了還跟m比幹嘛 12/24 13:44
rightofangel: for(int j=0; j<=i-1; j++)只要包if而已 12/24 13:46
tsoahans: 或是改交換 要放第一層迴圈 12/24 13:47
kkyou: Swap 不是在第二個迴圈內做吧 12/24 13:49
kkyou: 同樓上 12/24 13:50
saqwedcxz: 懂了 感謝! 12/24 13:59
jerry031181: 這感覺是selection sort 可是他初值怪怪的QQ 12/24 15:52
jerry031181: 阿沒事我耍笨把array當[1..N] orz 12/24 15:54
odanaga: 所以這題是d吧 12/24 16:17
jerry031181: 是c阿 他要找的是increase 又從n-1 downto1 12/24 17:18
jerry031181: 每次要從前i-1個挑最大 swap 12/24 17:19
odanaga: 奧 原來是n-1開始 12/24 17:33
kkyou: 想借問題組20(60) 也就是最後一題 12/24 18:12
kkyou: bipartite matching 不是都整數嗎? 12/24 18:13
kkyou: 不知道d哪裡錯 12/24 18:14
jerry031181: 可以定義capacity1/2去找 最後出來的flow就不是整數 12/24 19:07
kkyou: 恩恩 感謝回答 12/24 23:11