91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用珠算法對PHP數組進行排序

發布時間:2021-08-03 15:02:35 來源:億速云 閱讀:78 作者:chen 欄目:編程語言

本篇內容主要講解“如何使用珠算法對PHP數組進行排序”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用珠算法對PHP數組進行排序”吧!

首先給大家簡單介紹下什么是珠算法?

珠算法也叫珠排序,是一種自然排序算法,由Joshua J. Arulanandham, Cristian S. Calude 和 Michael J. Dinneen 在2002年發展而來,并且在歐洲理論計算機協會(European Association for Theoretical Computer Science,簡稱EATCS)的新聞簡報上發表了該算法。

珠排序的數字和模擬硬件實現都可以實現 O(n );但是,該算法的實現在軟件中往往要慢得多,只能用于對正整數列表進行排序。

在簡單了解該算法之后,我們直接上代碼:

<?php
function columns($uarr)
{
    $n=$uarr;
    if (count($n) == 0)
        return array();
    else if (count($n) == 1)
        return array_chunk($n[0], 1);
    array_unshift($uarr, NULL);
    $transpose = call_user_func_array('array_map', $uarr);
    return array_map('array_filter', $transpose);
}
function bead_sort($uarr)
{
    foreach ($uarr as $e)
        $poles []= array_fill(0, $e, 1);
    return array_map('count', columns(columns($poles)));
}
echo '原始數組: '.'
';
var_dump(array(5,3,1,3,8,7,4,1,1,3));
echo '
'.'珠排序后 : '.'
';
var_dump(bead_sort(array(5,3,1,3,8,7,4,1,1,3)));

運行結果如:

如何使用珠算法對PHP數組進行排序

在上述代碼中給大家介紹幾個關鍵的函數:

1、array_unshift()函數:用于向數組插入新元素。新數組的值將被插入到數組的開頭。被加上的元素作為一個整體添加,這些元素在數組中的順序和在參數中的順序一樣。該函數會返回數組中元素的個數。

2、call_user_func_array:調用回調函數,并把一個數組參數作為回調函數的參數,語法是“call_user_func_array(callable $callback, array $param_arr): mixed”,表示把第一個參數作為回調函數(callback)調用,把參數數組作(param_arr)為回調函數的的參數傳入。

3、array_map :為數組的每個元素應用回調函數。

到此,相信大家對“如何使用珠算法對PHP數組進行排序”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

辉县市| 柞水县| 灵石县| 平南县| 河间市| 冀州市| 时尚| 东乌| 丰宁| 淮滨县| 峨眉山市| 大石桥市| 达拉特旗| 堆龙德庆县| 慈利县| 克山县| 阳泉市| 天台县| 汨罗市| 察哈| 司法| 霸州市| 青神县| 宁城县| 晴隆县| 阿坝| 吴堡县| 汾阳市| 景德镇市| 溧水县| 张北县| 务川| 靖西县| 黄冈市| 武平县| 海宁市| 敖汉旗| 神农架林区| 桐梓县| 赫章县| 贵南县|