首先给大家简单介绍下什么是珠算法?
珠算法也叫珠排序,是一种自然排序算法,由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)));运行结果如:

在上述代码中给大家介绍几个关键的函数:
1、array_unshift()函数:用于向数组插入新元素。新数组的值将被插入到数组的开头。被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样。该函数会返回数组中元素的个数。
2、call_user_func_array:调用回调函数,并把一个数组参数作为回调函数的参数,语法是“call_user_func_array(callable $callback, array $param_arr): mixed”,表示把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的的参数传入。
3、array_map :为数组的每个元素应用回调函数。
最后给大家推荐一个咱们平台的最新免费课程《从0开始进入PHP的世界》~快来学习吧!
-
C#CheckedListBox控件用法详解(属性、方法、事件) 时间:2025-12-12 -
-
minidump.dmp是什么文件?怎么打开?可以删除吗? 时间:2025-12-12 -
teniodl.exe是什么进程?怎么彻底关闭? 时间:2025-12-12 -
display:block是什么意思?display:block属性的作用? 时间:2025-12-12 -
什么是updater.exe?怎么删除?如何关闭? 时间:2025-12-12
今日更新
-
FIL币挖矿收益计算指南 欧易平台收益分析及优化策略
阅读:18
-
抖音网页版官网入口-抖音网页版在线观看链接
阅读:18
-
TikTok官网入口地址在哪-TikTok网页版注册教程详解
阅读:18
-
囧次元动漫app官方正版安装包下载-囧次元动漫2026最新版本安卓苹果免费下载
阅读:18
-
奈飞Netflix官网网址入口2025-Netflix网页版官方正版入口
阅读:18
-
FIL币在欧易交易所的存储市场表现与最新应用分析
阅读:18
-
拷贝漫画app官方下载安装-拷贝漫画app官网正版免费下载
阅读:18
-
163个人免费邮箱快速登录入口-163免费邮箱安全验证便捷入口
阅读:18
-
苹果7中国红是什么梗?揭秘这款限量版手机的独特魅力与收藏价值
阅读:18
-
俄罗斯Yandex官网入口网址在哪 Yandex搜索引擎首页直达
阅读:18










