作者wa007123456 (大笨羊)
看板C_and_CPP
標題[問題] 選擇排序法的問題
時間Wed Nov 16 14:33:05 2016
開發平台(Platform): (Ex: Win10, Linux, ...)
Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
無法完成正確排序
餵入的資料(Input):
陣列:
{87,23,21,14,17,9,86,66,99,10}
預期的正確結果(Expected Output):
9, 10, 14, 17, 21, 23 , 66 , 86, 87, 99,
錯誤結果(Wrong Output):
9, 10, 14, 17, 21, 66, 23, 86, 87, 99,
程式碼(Code):(請善用置底文網頁, 記得排版)
select sort函數 我是這樣寫的....
---------------------------------------------------
void select_Sort(int data[], int n){ /*參數n為陣列長度*/
int i, j, min, tmp;
for (i = 0; i < n ; i++) {
min = i;
for (j = i; j < n; j++) {
if (data[j] < data[min]) {
min = j;
}
tmp = data[min];
data[min] = data[i];
data[i] = tmp;
}
}
}
---------------------------------------------------
補充說明(Supplement):
我用debuger了 前面的排序正常 但是到了後面會有一個奇怪的轉換(!?)
66跟23交換位置了
感謝各位前輩...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.195.157
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1479277988.A.58C.html
※ 編輯: wa007123456 (125.227.195.157), 11/16/2016 14:35:57
1F:推 tsoahans: 你先換過去min就不是最小值了 11/16 14:59
感謝樓上 我會了...原來交換的地方寫錯了...
要在第一層迴圈
不然他會瘋狂亂換@@ 謝謝你
※ 編輯: wa007123456 (125.227.195.157), 11/16/2016 15:09:51