博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于常用到的几个排序,php的实现
阅读量:6678 次
发布时间:2019-06-25

本文共 1493 字,大约阅读时间需要 4 分钟。

$arr[$j+1]){$temp = $arr[$j+1];$arr[$j+1] = $arr[$j];$arr[$j] = $temp;$flag = 1;}}//优化if(!$flag){//已经有序break;}$flag=0;}return $arr;}echo implode(',',bubbleSort($arr)).'
';#选择排序function selectSort($arr){for($i=0;$i
$arr[$j]){$minVal = $arr[$j];$minIndex = $j;}}//最后交换$temp = $arr[$i];$arr[$i] = $arr[$minIndex];$arr[$minIndex] = $temp;}return $arr;}echo implode(',',selectSort($arr)).'
';#插入排序function insertSort($arr){//先默认下标为0的已经是有序的for($i=1;$i
=0&&$insertVal<$arr[$insertIndex]){//同时把数后面移动一下$arr[$insertIndex+1] = $arr[$insertIndex];$insertIndex--;}//插入$arr[$insertIndex+1] = $insertVal;}return $arr;}echo implode(',',insertSort($arr)).'
';#快速排序(递归)function quickSort($left,$right,&$arr){$l = $left;$r = $right;$pivot = $arr[($left+$right)/2];$temp=0;while($l<$r){while($arr[$l]<$pivot)$l++;while($arr[$r]>$pivot)$r--;if($l>=$r) break;$temp=$arr[$l];$arr[$l]=$arr[$r];$arr[$r]=$temp;if($arr[$l]==$pivot)--$r;if($arr[$r]==$pivot)++$l;}if($l==$r){$l++;$r--;}if($left<$r) quickSort($left,$r,$arr);if($right>$l)quickSort($l,$right,$arr);//return $arr;}quickSort(0,count($arr)-1,$arr);echo implode(',',$arr).'
';#二分查找function binarySearch(&$arr,$findVal,$l,$r){//停止条件if($l>$r){return;}//找到中间的下标$midIndex = round(($r+$l)/2);if($findVal>$arr[$midIndex]){binarySearch($arr,$findVal,$midIndex+1,$r);}elseif($findVal<$arr[$midIndex]){binarySearch($arr,$findVal,$l,$midIndex-1);}else{echo $midIndex;}}binarySearch($arr,0,0,count($arr)-1);

都已经亲自测试过,可以正常运行!

 

 

 

转载地址:http://qbyao.baihongyu.com/

你可能感兴趣的文章
[ASP.NET MVC 小牛之路]03 - Razor语法(转)
查看>>
linux系统下make & make install
查看>>
053医疗项目-模块五:权限设置-将用户操作权限写入Session
查看>>
DocX开源WORD操作组件的学习系列一
查看>>
box2dflash flash物理引擎
查看>>
[原创]FineUI秘密花园(二十六) — 选项卡控件概述
查看>>
python 守护线程和loggin模块
查看>>
Android中检测软键盘的弹出和关闭
查看>>
大数记录之,大数乘整型数nyoj832
查看>>
使用Unity3D自带动画系统制作下雨效果
查看>>
02 svn 文件提交与目录结构
查看>>
ConcurrentHashMap vs Collections.synchronizedMap()不同
查看>>
file_name[:-4]
查看>>
微生物组学数据分析工具综述 | 16S+宏基因组+宏病毒组+宏转录组--转载
查看>>
mvc 做伪静态另外一个方法
查看>>
apache中文乱码;mod_rewrite: could not create rewrite_log_lock Configuration Failed
查看>>
android面试题及答案
查看>>
Linux下全局符号覆盖问题
查看>>
【iScroll源码学习02】分解iScroll三个核心事件点
查看>>
【流量劫持】SSLStrip 的未来 —— HTTPS 前端劫持
查看>>