当前位置:首页 > 日记 > 正文

PHP排序算法的回顾与总结

PHP排序算法的回顾与总结
直接进入代码!
复制代码代码如下所示:
< PHP
*
*插入排序(一维数组)
*将已排序的数据元素插入已排列在前排的序列中的适当位置,以便序列仍处于有序状态。在插入所有要排序的数据元素之前。
* /
函数插入排序($ ARR){
如果(!is_array($ ARR)| |计数($ ARR)= = 0){
返回的数组;
}
$count =计数($ ARR);
($ i = 1;$ i <计数;$ + +){
如果(isset($ ARR {我})){
TMP =美元美元美元ARR {我}; / /元素的访问的价值
$ = i $ 1;在前面。
而($ ARR { $ J } > $ TMP){ / /如果前一个比一个大,这是从大到小
$ ARR { $ J + 1 } = {,} ARR美元美元; / /小元素,在交流前,直到下一个移动到正确的位置移动
ARR { } =美元美元美元,TMP;
美元—;
}
}
}
返回的数组;
}
U3000 U3000
*
*选择排序(一维数组)
*从要排序的每个数据元素中选择最小(最大)元素,然后将其放置在有序序列的末端,直到所有的数据元素被整理出来为止。
* /
功能选择排序($ ARR){
如果(!is_array($ ARR)| |计数($ ARR)= = 0)
{
返回的数组;
}
$count =计数($ ARR);
($ i = 0;$ i <计数;$ + +){
美元=我;
对于($ = $ i + 1;$ j $计数;$ + +){
如果($ ARR { $ K } > $ ARR { $ J })
美元= J; /找到最小的
如果(k)!= $ i){
$tmp = $arr{$i};
ARR {我} =美元美元美元美元K ARR { };
ARR { } = K美元美元美元的TMP;
}
}
}
返回的数组;
}
*
*冒泡排序(一维数组)
* 22比较要排序的数据元素的大小,并发现在没有逆序数据元素之前,这两个数据元素的顺序被切换到相反的顺序。
* /
功能的冒泡排序($array){
计数=(数组);
如果(计算$ = 0){
返回false;
}
($ i = 0;$ i <计数;$ + +){
为(J = $ count-1;J > $我;J—){
如果(数组$ { $ J } <数组$ { $ J-1 }){ / /比较的数字交换
$ = $数组{ $ };
数组$ { $ J } =数组{ $ J-1 };
数组$ { $ J-1 } = $ TMP;
}
}
}
返回数组;
}
U3000 U3000
*
*快速排序(一维数组)
*
* /
功能快速排序($array){
如果(计数(数组)< = 1){
返回数组;
}
$ = $数组{ 0 };
left_arr美元=阵();
right_arr美元=阵();
对于($ i = 1;$ i <计数(数组);$ + +){
如果(数组{ $ i }键){
left_arr美元{ } =数组{ $我};
其他{ }
right_arr美元{ } =数组{ $我};
}
}
left_arr美元= quicksort($ left_arr);
right_arr美元= quicksort($ right_arr);
返回array_merge($ left_arr,阵列($键),right_arr美元);
}

*按元素的值排序
* strorder ASC升序降序降序降序
* /
功能sortbyval($ ARR,strorder美元= 'asc)
{
如果(!is_array($ ARR)| |计数($ ARR)= = 0)
{
返回的数组;
}
arrreturn美元=阵();
foreach(ARR美元美元美元关键= > Val)
{
arrkey美元{ } =美元关键;
arrval { } =瓦尔美元美元;
}
$count =计数($ arrval);
如果(计数)
{
创建一个键顺序的数组。
对于($ = 0;键$ <计数;键+ +)
{
arrkeymap美元美元美元} = {关键的关键;
}
/排序值
($ i = 0;$ i;
{
为(J = $ count-1;J > $我;J——)
{
在修改后的提升中从小到大排列。
表明美元strorder = = 'asc美元美元美元美元,arrval { } { }美元arrval J-1;
如果($ BOL){
美元美元美元arrval TMP = {,};
{ } = J arrval美元美元美元美元arrval J-1 } {;
arrval美元美元美元} = { J-1 TMP;
键阵列相互作用引起冒泡排序的值
keytmp美元美元美元arrkeymap {,} =;
{ } = J arrkeymap美元美元美元美元arrkeymap J-1 } {;
arrkeymap美元美元美元keytmp J-1 } = {;
}
}
}
如果(计数($ arrkeymap))
{
foreach(arrkeymap美元美元价值)
{
arrreturn美元{ } = { } arrkey美元美元价值;
}
}
返回的arrreturn;
}
}

*数组是由使用本机函数的值排列的。
* /
功能arraysortbyval(ARR美元美元美元,钥匙型= 'asc){
keysvalue美元=美元new_array =阵();
foreach(ARR美元美元美元K = > v){
keysvalue美元{ $ K } = { } $ $ V键;
}
如果(合型= = 'asc){
Asort(keysvalue美元);
其他{ }
Arsort(keysvalue美元);
}
复位($ keysvalue);
foreach(keysvalue美元美元美元K = > v){
new_array美元{ $ K } = { } $ K $ ARR;
}
返回的new_array;
}

对于2阶的数组值法,下面是一个实现自己使用PHP函数的本机,对于少量的数据实际上是排序的单页数据或可以,如果涉及到大量的数据排序,建议可以集成到mysql类的基础上。

相关文章

PHPcoutlt;lt;观点

PHPcoutlt;lt;观点

观点,电脑软件,PHPcoutlt,lt,也就是说,整数和小数位数的总和不应超过6位。如果小数部分太长,根据四个回合和五个条目,系统大约是6位。如果整数部分太长,它也将大约为6位。 例如: cout cout cout cout 对于正则字符串,它们在理论上是无限长…

微软Office在线将进入ChromeWeb商

微软Office在线将进入ChromeWeb商

商店,在线,应用程序,电脑软件,Office,{ }北京时间4月15日消息,微软昨天在官方博客中指出,Office办公套件Office在线(包括Word,Excel,PowerPoint和OneNote)将Chrome Web Store应用商店。 据悉,网上办公的原来的名字是Office Web应用程序,它支持Chro…

linux系统命令完全使用详细的解决

linux系统命令完全使用详细的解决

解决方案,系统命令,百科全书,详细,电脑软件,评论:改变工作目录的目录,目录表示可以是一个绝对路径或相对路径。如果目录名称被省略,它改变用户的主目录(即目录登录只是)。此外,也意味着主目录。表示当前存在的目录。表示目录位置的上层。 猫的CD …

fih32.exe的功能是什么该fih32过程

fih32.exe的功能是什么该fih32过程

查询,功能,过程,电脑软件,exe,点评:fih32.exe是F-Secure杀毒软件相关程序 进程文件:fih32或fih32.exe 进程名称:F-Secure安装发射器 过程类别:安全风险的过程 英文描述: fih32.exe是F-Secure的反病毒程序安装发射器。这个过程是 中文参考: fih3…

非常有用的PHP弹出错误警告功能可

非常有用的PHP弹出错误警告功能可

可扩展性,错误,弹出,有用,功能,很实用的一个共享,我一直在使用php弹出警告功能,把自己组织成代码库,在错误的地方可以用到这个函数,伸缩性很强,完整的代码如下所示。 复制代码代码如下所示: / / ********警报弹出框和跳转到指定页面****** / / 功…

如何隐藏Win7虚拟硬盘文件

如何隐藏Win7虚拟硬盘文件

虚拟,文件,硬盘,电脑软件,评论:因特网上有很多教程可以指导用户伪装文件或文件夹,从而隐藏隐藏的文件。事实上,如何隐藏或甚至加密计算机中的私有文件,尤其是在公共计算机中,是用户的头痛。 网络上有很多教程可以指导用户伪装文件或文件夹,以便…

这个过程inetd32过程是什么样的作

这个过程inetd32过程是什么样的作

作用,过程,电脑软件,exe,点评:inetd32.exe是蜂鸟公司相关应用 进程文件:inetd32或inetd32.exe 进程名称:Hummingbird Inetd Component 过程类别:安全风险的过程 英文描述: inetd32.exe是与Hummingbird Inetd有关的过程中的应用。蜂鸟,应用,它被…

UC全球用户突破5亿Android平台为季

UC全球用户突破5亿Android平台为季

用户,平台,季度,突破,现场,近日,中国领先的互联网服务提供商UC宣布其全球用户已超过5亿,其中UC浏览器Android平台的用户已超过3亿,并继续领跑全球移动浏览器市场。对此,于永付,UC优视公司董事长兼首席执行官说:UC优视公司可以继续引领全球移动浏…

是一种病毒,可以删除imapp.exeIMAPP

是一种病毒,可以删除imapp.exeIMAPP

查询,删除,是一种,电脑软件,imapp,点评:imapp.exe的IncrediMail的邮件客户端程序的一部分 进程文件:IMAPP或imapp.exe 进程名称:IncrediMail 过程类别:安全风险的过程 英文描述: imapp.exe是IncrediMail的执行。IncrediMail是一个电子邮件应用…

对pavkre.exe-pavkre的作用是什么

对pavkre.exe-pavkre的作用是什么

作用,电脑软件,pavkre,exe,评论:详细的介绍了pavkre.exe - pavkre过程 进程文件:pavkre或pavkre.exe 过程名称:熊猫防病毒 过程类别:安全风险的过程 英文描述: pavkre.exe是一个过程,属于熊猫杀毒软件保护您的计算机免受互联网威胁的约束如木马…

TencentYeJun:QQ浏览器引领信息获取

TencentYeJun:QQ浏览器引领信息获取

浏览器,新时代,电脑软件,TencentYeJun,QQ,今天,在北京举行的GMIC大会的移动生活腾讯;下一代;分论坛,QQ浏览器宣布在主旨演讲首席产品设计师Ye Jun,为每个用户的个性化需求的下一代腾讯QQ浏览器,有效的信息直接提供给用户,从而实现你是怎么想的新的…

360报告:90%后近4将愿意支付手机游

360报告:90%后近4将愿意支付手机游

支付,费用,报告,电脑软件,90后,时尚集团有同样强烈的体验欲望的新鲜移动互联网。前一天,360互联网安全中心发布的90移动互联网研究报告(二)(以下简称报告),90使用移动互联网的一个详细的分析报告。表明,移动游戏的90后有着无与伦比的吸引力,和超过37…