首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 關聯陣列快速排序演算法實作

     編輯:PHP 綜合知識

自訂快速排序函式 qsort,支援依指定比較函式對關聯陣列排序。

<?php
function qsort($a, $f) {
    qsort_do($a, 0, count($a) - 1, $f);
}
function qsort_do(&$a, $l, $r, $f) {
    if ($l < $r) {
        qsort_partition($a, $l, $r, $lp, $rp, $f);
        qsort_do($a, $l, $lp, $f);
        qsort_do($a, $rp, $r, $f);
    }
}
function qsort_partition(&$a, $l, $r, &$lp, &$rp, $f) {
    $i = $l + 1;
    $j = $l + 1;
    while ($j <= $r) {
        if ($f($a[$j], $a[$l])) {
            $tmp = $a[$j];
            $a[$j] = $a[$i];
            $a[$i] = $tmp;
            $i++;
        }
        $j++;
    }
    $x = $a[$l];
    $a[$l] = $a[$i - 1];
    $a[$i - 1] = $x;
    $lp = $i - 2;
    $rp = $i;
}
?>

使用方式:qsort($array, function($x, $y) { return $x['key'] < $y['key']; });

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved