看板 TransCSI 關於我們 聯絡資訊
※ 引述《walks (蹦蹦跳跳)》之銘言: : 再寫題目 有點問題 : 不懂 它的基值 是怎要挑選出來的 : 查了維基 : 從數列中挑出一個元素,稱為 "基準"(pivot), : 重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準 : 的後面(相同的數可以到任一邊)。在這個分割之後,該基準是它的最後位置。這個稱為 : 分割(partition)操作。 : 這是題目 : http://www.postimage.org/image.php?v=Pqcmhlr : 因為答案是 29 28 22 21 6 12 36 : 不太懂是怎樣選出來的 > < 謝謝 從程式碼 int parti() 裡面的第一行 int v = b[b2]; 可以看的出 pivot 是取最後一個數 10 12 3 6 38 36 22 28 26 21 29 step1 10 12 3 6 21 26 22 28 29 38 36 step2 10 12 3 6 21 26 22 28 29 38 36 step3 10 12 3 6 21 22 26 28 29 38 36 step4 10 12 3 6 21 22 26 28 29 38 36 step5 3 6 10 12 21 22 26 28 29 38 36 step6 3 6 10 12 21 22 26 28 29 38 36 step6 3 6 10 12 21 22 26 28 29 36 38 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.53.80
walks:^^ 01/24 12:58