看板 C_and_CPP 關於我們 聯絡資訊
: 接著 *front <= meddle 所以 front++ : front last : | | : +---+---+---+---+---+---+ : | 2 | 1 | 3 | 3 | 4 | 5 | : +---+---+---+---+---+---+ : meddle:3 : 直到 : last front : | | : +---+---+---+---+---+---+ : | 2 | 1 | 3 | 3 | 4 | 5 | : +---+---+---+---+---+---+ : meddle:3 : 然後 swap(*last,*front) : last front : | | : +---+---+---+---+---+---+ : | 2 | 1 | 4 | 3 | 3 | 5 | : +---+---+---+---+---+---+ : meddle:3 : 你會發現, 這個演算法根本就不正確... ̄▽ ̄|| while(last > front){ while(*last >= meddle) last--; swap(*front,*last); while(*front <= meddle) front++; swap(*last,*front); } 這是我進行swap的條件 我想說只要last的位址大於front的條件成立 才可進行您的精美插圖的最後一步 ps:c&cpp版 真的很溫馨 用圖真的會比較好看 真的很感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.27.146.174
dendrobium:你的swap 只要一進到while(last > front) 就必定會執行 03/22 11:36
MMAXo:請正常使用大括號.....是這樣吧 = =" 03/22 11:39
VictorTom:括號是好物....XD 03/22 11:47
rephansu:用手算input[]={1,2}的結果,就會知道有"="就會違規存取 03/22 11:54
secondsee:我知道了…原來是會跑到input[-1]去, 非常感謝 03/22 11:58
secondsee:也謝謝 回文的各位m(_ _)m 03/22 11:59
secondsee:十二誡第二條 原以為不會犯的= = 03/22 12:02
uranusjr:甚麼時候悄悄從 11 又變 12 了...XD 03/22 13:11