Re: [問題] 利用指標完成quicksort

看板C_and_CPP作者 (漂流木)時間15年前 (2010/03/22 03:33), 編輯推噓2(206)
留言8則, 6人參與, 最新討論串3/3 (看更多)
: 接著 *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

03/22 11:36, , 1F
你的swap 只要一進到while(last > front) 就必定會執行
03/22 11:36, 1F

03/22 11:39, , 2F
請正常使用大括號.....是這樣吧 = ="
03/22 11:39, 2F

03/22 11:47, , 3F
括號是好物....XD
03/22 11:47, 3F

03/22 11:54, , 4F
用手算input[]={1,2}的結果,就會知道有"="就會違規存取
03/22 11:54, 4F

03/22 11:58, , 5F
我知道了…原來是會跑到input[-1]去, 非常感謝
03/22 11:58, 5F

03/22 11:59, , 6F
也謝謝 回文的各位m(_ _)m
03/22 11:59, 6F

03/22 12:02, , 7F
十二誡第二條 原以為不會犯的= =
03/22 12:02, 7F

03/22 13:11, , 8F
甚麼時候悄悄從 11 又變 12 了...XD
03/22 13:11, 8F
文章代碼(AID): #1BfkK75L (C_and_CPP)
文章代碼(AID): #1BfkK75L (C_and_CPP)