一、名称
- 冒泡排序
- 选择排序
- 插入排序
- 快速排序
二、实现
<?php
function bubbleSort(Array $a){
$len=count($a);
for($i=1;$i<$len;$i++){
for($j=0;$j<$len-$i;$j++){
if($a[$j]>$a[$j+1]){
$a[$j]=$a[$j]+$a[$j+1];
$a[$j+1]=$a[$j]-$a[$j+1];
$a[$j]=$a[$j]-$a[$j+1];
}
}
}
return $a;
}
function selectSort(Array $a){
$len=count($a);
for($i=0;$i<$len-1;$i++){
$p=$i;
for($j=$i+1;$j<$len;$j++){
if($a[$p]>$a[$j]){
$p=$j;
}
}
if($p!=$i){
$a[$i]=$a[$i]+$a[$p];
$a[$p]=$a[$i]-$a[$p];
$a[$i]=$a[$i]-$a[$p];
}
}
return $a;
}
function insertSort(Array $a){
$len=count($a);
for($i=1;$i<$len;$i++){
$tmp=$a[$i];
for($j=$i-1;$j>=0;$j--){
if($tmp<$a[$j]){
$a[$j+1]=$a[$j];
$a[$j]=$tmp;
}else{
break;
}
}
}
return $a;
}
function quickSort(Array $a){
$len=count($a);
if($len<=1){
return $a;
}
$left_array=[];
$right_array=[];
$base_num=$a[0];
for($i=1;$i<$len;$i++){
if($a[$i]>=$base_num){
$right_array[]=$a[$i];
}else{
$left_array[]=$a[$i];
}
$left_array=quickSort($left_array);
$right_array=quickSort($right_array);
}
return array_merge($left_array,[$base_num],$right_array);
}
$a=[7,10,5,55,44,33];
$start=microtime(true);
print_r(quickSort($a));
$end=microtime(true);
echo memory_get_usage(true).'<br/>';
echo $end-$start;
结束:
有必要重新看下算法了![这里写图片描述](https://img-blog.csdn.net/20150409152519075)