希爾排序算法

/**
 * 希爾排序算法,
 * 希爾排序將數組按指定步長分隔成若干子序列,然後分別對子序列進行排序(在這是直接)
 */
function xier_sort($arr)
{
    $len = count($arr);
    $tmp;
    $h = (int) $len / 2;
    while ($h >= 1) {
        for ($i = $h; $i < $len; $i ++) {
            for ($j = $i; $j >= $h && ($arr[$j - $h] > $arr[$j]); $j --) {
                $tmp = $arr[$j - $h];
                $arr[$j - $h] = $arr[$j];
                $arr[$j] = $tmp;
            }
        }
        $h = (int) $h / 2;
    }
    return $arr;
}
print_r(xier_sort($arr));
發佈了48 篇原創文章 · 獲贊 11 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章