Re: [問題] Quick Sort : Middle

作者: PsMonkey (痞子軍團團長)   2014-04-28 18:56:24
※ 引述《kingofsdtw (不能閒下來!!)》之銘言:
: 請問...
: Quick Sort按照"原意" middle應該是啥呢?
: 目前以下都寫出可以跑的Function
: 但是身邊查到的國外網頁教學和課本大多是採用a 方案
: a. middle = arry[left + right];
: if(arry[left]> middle).....
: b. middle = (left +right) /2;
: if(arry[left] >arry[middle] )....
: Code: http://codepad.org/iVymx6kA
1. 我不覺得這是 Java 問題
2. 你的程式碼註解... 幾乎可視為沒有
把右大括號打上註解,著名左大括號的... 用意(?)
這幾乎沒有什麼額外的意義
3. 我實在看不懂你文章當中的 a 要怎麼跑
用你程式裡頭的變數定義
(然後還得自己把 array 代換成 data,
以及忽略搞不懂你的 if 到底是指程式碼中的哪一段)
你寫的 a 不是有 typo,不然就是... 我也不知道是什麼了
是故,原文給予 s
作者: k47100014 (MIT_No.14)   2014-04-28 20:28:00
middle就只是取陣列中間的意思而已 a是取該數字 b是位置a少了/2 →middle = arry[(left+right)/2];至於if 為什麼找不到:他只是舉例而已
作者: morris282 (morris)   2014-04-28 21:29:00
你的code算法正確嗎第一個DATA[]如果1不是第一個元素 就可能不是升冪排序
作者: k47100014 (MIT_No.14)   2014-04-28 21:45:00
樓上 你可能不太懂Quick Sort的算法 1是不是第一個沒差
作者: morris282 (morris)   2014-04-28 21:49:00
正常QUICKSORT對任何陣列都能得到升冪排序的結果吧?他的code對某些陣列來說沒辦法得到正確的升冪排序
作者: k47100014 (MIT_No.14)   2014-04-28 21:52:00
QuickSort本來不管如何都無法有正確的排序big O(n logn)
作者: morris282 (morris)   2014-04-28 21:53:00
如果QuickSort不是要排升/降冪 那就是我搞錯了
作者: k47100014 (MIT_No.14)   2014-04-28 22:00:00
阿 我錯了 morris你是對的
作者: kingofsdtw (不能閒下來!!)   2014-04-28 22:03:00
我Code 有Bug無法排升/降冪 @@??
作者: morris282 (morris)   2014-04-28 22:25:00
{12,5,26,7,14,3,7,2,1}似乎沒辦法得到正確的排序

Links booklink

Contact Us: admin [ a t ] ucptt.com