php 常用的排序算法代码[冒泡,递归排序
<?php
//冒泡排序算法
function bubblesort($arr) {
$n = count($arr);
for ($i = 0; $i < $n; $i++) {
for ($j = $i; $j <= $n - 1; $j++) {
if ($arr[$i] > $arr[$j]) {
$temp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $temp;
}
}
}
return $arr;
}//直接插入排序
function insertsort($arr) {
$n = count($arr);
for ($i = 1; $i < $n; ++$i) {
if ($arr[$i] < $arr[$i - 1]) {
$tmp = $arr[$i];
$j = 0;
for ($j = $i - 1; $j >= 0 && $tmp < $arr[$j]; --$j) {
$arr[$j + 1] = $arr[$j];
}
$arr[$j + 1] = $tmp;
}
}
return $arr;
}简单排序算法
function simplesort($arr) {
$tmp = 0;
$t = 0;
$n = count($arr);
for ($i = 0; $i < $n; ++$i) {
$t = $i;
for ($j = $i + 1; $j < $n; ++$j) {
if ($arr[$t] > $arr[$j]) {
$t = $j;
}
}
$tmp = $arr[$i];
$arr[$i] = $arr[$t];
$arr[$t] = $tmp;
}
return $arr;
}//快速排序算法
function qsort($array) {
$n = count($array);
if ($n <= 1) {
return $array;
}
$key = $array[0];
$l = array();
$r = array();
//分别进行递归排序,然后合成一个数组
for ($i = 1; $i < $n; $i++) {
if ($array[$i] <= $key) {
$l[] = $array[$i];
} else {
$r[] = $array[$i];
}
}
$l = qsort($l);
$r = qsort($r);
return array_merge($l, array(
$key
) , $r);
}永久地址:http://www.phprm.com/code/3e8c16634f0674c0252d5954bc1e5662.html
转载随意~请带上教程地址吧^^