[理工] [資結]-Quicksort
請問Quicksort在全部的input的key值都相等時
會發生什麼情形呢 ?
//partition的作法
pivot=list[m].key;
repeat
repeat
i++;
until list[i].key>=pivot
repeat
j--;
until list[j].key<=pivot
if(i<j)swap(list[i],list[j]);
until(i>=j)
swap(list[m],list[j]);//pivot就定位
以上這段code
在全部的element key值都相等時
每次partition還是會把pivot放到中間吧 ?
所以應該算是成功的分割 ?
可是看考題好像說equal key很多的時候也會變成worst case 請問是為什麼呢 ?
還有要怎樣解決 @@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.126.125.176
※ 編輯: EntHeEnd 來自: 59.126.125.176 (03/02 02:30)
推
03/02 02:34, , 1F
03/02 02:34, 1F
→
03/02 02:34, , 2F
03/02 02:34, 2F
→
03/02 02:36, , 3F
03/02 02:36, 3F
→
03/02 02:36, , 4F
03/02 02:36, 4F
→
03/02 02:37, , 5F
03/02 02:37, 5F
→
03/02 02:38, , 6F
03/02 02:38, 6F
※ 編輯: EntHeEnd 來自: 59.126.125.176 (03/02 02:38)
→
03/02 02:39, , 7F
03/02 02:39, 7F
→
03/02 02:39, , 8F
03/02 02:39, 8F
推
03/02 02:40, , 9F
03/02 02:40, 9F
→
03/02 02:40, , 10F
03/02 02:40, 10F
→
03/02 02:40, , 11F
03/02 02:40, 11F
→
03/02 02:41, , 12F
03/02 02:41, 12F
→
03/02 02:41, , 13F
03/02 02:41, 13F
→
03/02 02:42, , 14F
03/02 02:42, 14F
→
03/02 02:42, , 15F
03/02 02:42, 15F
推
03/02 02:43, , 16F
03/02 02:43, 16F
→
03/02 02:44, , 17F
03/02 02:44, 17F
→
03/02 02:48, , 18F
03/02 02:48, 18F
→
03/02 02:48, , 19F
03/02 02:48, 19F
→
03/02 02:52, , 20F
03/02 02:52, 20F
→
03/02 02:53, , 21F
03/02 02:53, 21F
推
03/02 03:04, , 22F
03/02 03:04, 22F
→
03/02 03:06, , 23F
03/02 03:06, 23F
→
03/02 03:07, , 24F
03/02 03:07, 24F
推
03/02 03:10, , 25F
03/02 03:10, 25F
→
03/02 03:10, , 26F
03/02 03:10, 26F
推
03/02 03:22, , 27F
03/02 03:22, 27F