词条信息

admin
admin
超级管理员
词条创建者 发短消息   

相关词条

热门词条

更多>>
什么是端口?到底是做什么的呢?
端口一般指两种,一种是硬件比如路由器或者交换机的插网线的端口,一种是软件的逻辑的概念,比如http的80端口!...
7种进阶方法让你快速测试端口连通性
Ping是Windows、Linux和Unix系统下的一个检查网络连通性的命令工具,对于大部分互联网用户来说很...
电脑开机,总需要按F1,是什么原因造成的?
一.主板掉电这个说法是行业内的叫法了,一般是主板的CMOS电池没电了导致的。也是最常见的一种提示你按F1的提示...
社保降费对个人有什么影响?
下调城镇职工基本养老保险单位缴费比例是政府给企业发的一个大红包,特别是对于企业来说是一个利好,但是对个人来说有...
车辆“出险”对下年保费的影响,到底有多大?
【出险对交强险的影响】【出险对商业险的影响】车辆“出险”对下年保费的影响,到底有多大?这里有必要先提下车险第三...

精选图集

更多>>
简易百科旧版 >>所属分类 >> PHP   

PHP排序的几种方法

标签: PHP 排序

顶[0] 发表评论(0) 编辑词条

// 冒泡排序


function BubbleSort($arr) {


// 获得数组总长度


$num = count($arr);


// 正向遍历数组


for ($i = 1; $i < $num; $i++) {


// 反向遍历


for ($j = $num - 1; $j >= $i ; $j--) {


// 相邻两个数比较


if ($arr[$j] < $arr[$j-1]) {


// 暂存较小的数


$iTemp = $arr[$j-1];


// 把较大的放前面


$arr[$j-1] = $arr[$j];


// 较小的放后面


$arr[$j] = $iTemp;


}


}


}


return $arr;


}


// 交换法排序


function ExchangeSort($arr){


$num = count($arr);


// 遍历数组


for ($i = 0;$i < $num - 1; $i++) {


// 获得当前索引的下一个索引


for ($j = $i + 1; $j < $num; $j++) {


// 比较相邻两个的值大小


if ($arr[$j] < $arr[$i]) {


// 暂存较小的数


$iTemp = $arr[$i];


// 把较大的放前面


$arr[$i] = $arr[$j];


// 较小的放后面


$arr[$j] = $iTemp;


}


}


}


return $arr;


}


// 选择法排序


function SelectSort($arr) {


// 获得数组总长度


$num = count($arr);


// 遍历数组


for ($i = 0;$i < $num-1; $i++) {


// 暂存当前值


$iTemp = $arr[$i];


// 暂存当前位置


$iPos = $i;


// 遍历当前位置以后的数据


for ($j = $i + 1;$j < $num; $j++){


// 如果有小于当前值的


if ($arr[$j] < $iTemp) {


// 暂存最小值


$iTemp = $arr[$j];


// 暂存位置


$iPos = $j;


}


}


// 把当前值放到算好的位置


$arr[$iPos] = $arr[$i];


// 把当前值换成算好的值


$arr[$i] = $iTemp;


}


return $arr;


}


// 插入法排序


function InsertSort($arr){


$num = count($arr);


// 遍历数组


for ($i = 1;$i < $num; $i++) {


// 获得当前值


$iTemp = $arr[$i];


// 获得当前值的前一个位置


$iPos = $i - 1;


// 如果当前值小于前一个值切未到数组开始位置


while (($iPos >= 0) && ($iTemp < $arr[$iPos])) {


// 把前一个的值往后放一位


$arr[$iPos + 1] = $arr[$iPos];


// 位置递减


$iPos--;


}


$arr[$iPos+1] = $iTemp;


}


return $arr;


}


// 快速排序


function QuickSort($arr){


$num = count($arr);


$l = $r = 0;


$left = $right = array();


// 从索引的第二个开始遍历数组


for ($i = 1;$i < $num; $i++) {


// 如果值小于索引1


if ($arr[$i] < $arr[0]) {


// 装入左索引数组(小于索引1的数据)


$left[] = $arr[$i];


$l++;


} else {


// 否则装入右索引中(大于索引1的数据)


$right[] = $arr[$i];


$r++; //


}


}


// 如果左索引有值 则对左索引排序


if($l > 1) {


$left = QuickSort($left);


}


// 排序后的数组


$new_arr = $left;


// 将当前数组第一个放到最后


$new_arr[] = $arr[0];


// 如果又索引有值 则对右索引排序


if ($r > 1) {


$right = QuickSort($right);


}


// 根据右索引的长度再次增加数据


for($i = 0;$i < $r; $i++) {


$new_arr[] = $right[$i];


}


return $new_arr;

}

 

 

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇常见sql注入原理详解!
下一篇MySQL误操作后如何快速恢复数据?

0
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的百科词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>