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