<?php
/**
*快速排序
**/
function quickSort(&$arr,$left,$right)
{
$start=$left;
$end=$right;
while($start<$end){
while($arr[$start]<$arr[$left] && $start!=$end){
$start++;
}
while($arr[$end]>$arr[$left] && $start!=$end){
$end--;
}
$tmp=$arr[$start];
$arr[$start]=$arr[$end];
$arr[$end]=$tmp;
}
if($arr[$start]>$arr[$left]){
$start--;
}
$tmp=$arr[$start];
$arr[$start]=$arr[$left];
$arr[$left]=$tmp;
if($start-1>$left){
quickSort($arr,$left,$start-1);
}
if($start+1<$right){
quickSort($arr,$start+1,$right);
}
}
/**
*快速排序1
**/
function quickSort1(&$arr,$left,$right)
{
$i=$left;
$j=$right;
$flag=$arr[$left];
while($i<$j)
{
while($arr[$j]>=$flag && $i<$j)
{
$j--;
}
if($i<$j)
{
$arr[$i++]=$arr[$j];
}
while($arr[$i]<$flag && $i<$j)
{
$i++;
}
if($i<$j)
{
$arr[$j--]=$arr[$i];
}
}
$arr[$i]=$flag;
if($i>$left){
quickSort1($arr,$left,$i-1);
}
if($i<$right){
quickSort1($arr,$i+1,$right);
}
}
/**
*冒泡排序
*/
function BubbleSort(&$arr)
{
$length=count($arr);
for($i=0;$i<$length;$i++){
for($j=0;$j<$length-$i-1;$j++){
if($arr[$j+1]<$arr[$j]){
$tmp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$tmp;
}
}
}
}
/**
*选择排序
*/
function SelectSort(&$arr){
$length=count($arr);
for($i=0;$i<$length;$i++){
$now=$i;
$min=$arr[$i];
for($j=$i+1;$j<$length;$j++){
if($arr[$j]<$min){
$min=$arr[$j];
$now=$j;
}
}
$tmp=$arr[$i];
$arr[$i]=$min;
$arr[$now]=$tmp;
}
}
/**
*插入排序
**/
function InsertSort(&$arr){
$length=count($arr);
for($i=1;$i<$length;$i++){
$now=$arr[$i];
if($now<$arr[$i-1]){
for($j=$i-1;$j>=0 && $arr[$j]>$now;$j--){
$arr[$j+1]=$arr[$j];
}
$arr[$j+1]=$now;
}
}
}
//测试排序结果
for($i=0;$i<20;$i++){
$arr[]=$i;
}
shuffle($arr);
print_r($arr);
//quickSort($arr,0,count($arr)-1);
InsertSort($arr);
print_r($arr);
网友评论