作者PsMonkey (痞子軍團團長)
看板java
標題Re: [問題] Quick Sort : Middle
時間Mon Apr 28 18:56:24 2014
※ 引述《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
--
錢鍾書:
說出來的話
http://www.psmonkey.org
比不上不說出來的話
Java 版 cookcomic 版
只影射著說不出來的話
and more......
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.107.35
※ 文章網址: http://webptt.com/m.aspx?n=bbs/java/M.1398682587.A.9E1.html
1F:推 k47100014:middle就只是取陣列中間的意思而已 a是取該數字 b是位置 04/28 20:28
2F:推 k47100014:a少了/2 →middle = arry[(left+right)/2]; 04/28 20:30
3F:推 k47100014:至於if 為什麼找不到:他只是舉例而已 04/28 20:33
4F:→ morris282:你的code算法正確嗎 04/28 21:29
5F:→ morris282:第一個DATA[]如果1不是第一個元素 就可能不是升冪排序 04/28 21:34
6F:推 k47100014:樓上 你可能不太懂Quick Sort的算法 1是不是第一個沒差 04/28 21:45
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
一個上來問 quick sort 的人做出如此發言,我無言
7F:→ morris282:正常QUICKSORT對任何陣列都能得到升冪排序的結果吧? 04/28 21:49
8F:→ morris282:他的code對某些陣列來說沒辦法得到正確的升冪排序 04/28 21:50
9F:推 k47100014:QuickSort本來不管如何都無法有正確的排序big O(n logn) 04/28 21:52
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
我完全看不懂這句在講什麼,懇請國文大師幫忙斷句
如果是「QuickSort本來不管如何都無法有正確的排序,big O(n logn)」
先不論後頭幹麼扯個 big-O n*log(n)
只是看到有一種排序演算法,居然沒辦法保證有正確的排序
那我還不如乖乖用 bubble sort 就算了
至於其他斷句的可能,我無法
綜觀原 po k47100014 的發問
以我淺薄的演算法 / 國文 / Java 程度
我實在無法感受到發問的誠意
10F:→ morris282:如果QuickSort不是要排升/降冪 那就是我搞錯了 04/28 21:53
morris282 的氣度,請受小的我一拜 Orz
所以我決定連我這篇也 s 了
※ 編輯: PsMonkey (114.43.107.35), 04/28/2014 22:06:27
11F:推 k47100014:阿 我錯了 morris你是對的 04/28 22:00
12F:→ kingofsdtw:我Code 有Bug無法排升/降冪 @@?? 04/28 22:03
然後我也搞錯了,原來兩個 k 不是同一個人
在此致歉... Orz
不過我還是決定 s 文
※ 編輯: PsMonkey (114.43.107.35), 04/28/2014 22:07:50
13F:→ morris282:{12,5,26,7,14,3,7,2,1}似乎沒辦法得到正確的排序 04/28 22:25