【问题标题】:quick-sort 2500 element in an array快速排序数组中的 2500 个元素
【发布时间】:2013-03-07 14:38:22
【问题描述】:
<?php
 // Recursive version:
function quicksort($seq) {
if(!count($seq)) return $seq;
$pivot= $seq[0];
$low = $high = array();
$length = count($seq);
for($i=1; $i < $length; $i++) {
    if($seq[$i] <= $pivot) {
        $low [] = $seq[$i];
    } else {
        $high[] = $seq[$i];
    }
}
return array_merge(quicksort($low), array($pivot), quicksort($high));
}
//Let's try some examples
$myarr = array(25,5,3,4,17,1,88,8);
$final = quicksort($myarr);
print_r($final);
$final = quicksort($final);
print_r($final);
$strarray = array("mark","wes","mj","bruce","ming","lance","vince");
var_dump(quicksort($strarray));

?>

我是 php 新手,我想知道如何使这个循环超过 100 次。我有一个数组 2500 int 元素,我需要对其进行快速排序并显示结果,但是在 100 个元素之后它开始给出循环最大错误............知道吗?

【问题讨论】:

  • 您只是在尝试编写快速排序算法,或者您打算在未来使用此功能?如果是第二个,则:sort() 使用 » Quicksort 的实现。
  • @viakondratiuk 我只是想对快速排序进行编程,这样我就可以为我正在做的课程计时。

标签: php for-loop while-loop


【解决方案1】:

是的。使用一些内置的排序功能。例如:sort()。查看Sorting Arrays 手册以查看完整列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2014-07-20
    • 2020-06-21
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多