作者ray02825 (面包)
看板Grad-ProbAsk
标题[理工] [资结]-quick sort
时间Tue Oct 27 21:39:31 2009
quick sort的演算法问题
假设现在是sort A[l]--A[u]
它一开始把i设成l j设成u+1 pivot key设成A[l].key
然後就让i++去找比A[l].key大的值
但是如果A[l].key就是最大值了
这个演算法不就没办法跑?
因为找不到比A[l].key还要大的值就卡在i的loop内
请问各位大大这应该怎麽做?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.125.162.59
1F:推 abien:i加到u还是没找到就会跳离loop啦 10/27 22:12
2F:推 polomoss:如果A[1]是最大的话,右边每个值都比他小,则A[1]的值 10/27 22:53
3F:→ polomoss:会被换到最右边,然後这回合就结束,左边继续recursive 10/27 22:54
4F:→ polomoss:喔,懂你的问题,通常左右各会有个∞,所以会中址在最後 10/27 22:56
5F:推 gsrr:最後面放一个 比所有数都大的值. 10/27 23:19
6F:→ ray02825:感谢3位的解答 了解了 10/28 10:26