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
转载随意~请带上教程地址吧^^