php冒泡排序,快速排序
一:冒泡排序
原理:
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
$array = array(4,8,8978,524,12,54,87,63,4121,125,715,3214,5455,54441,103454,89,1);
$len = count($array);
for($i=0;$i<$len-1;$i++){
for($j=0;$j<$len-1-$i;$j++){
if($array[$j]>$array[$j+1]){
$t = $array[$j+1];
$array[$j+1] = $array[$j];
$array[$j] = $t;
}
}
}
print_r($array);
一:快速排序
原理:
- 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完
$array = array(4,8,8978,524,12,54,87,63,4121,125,715,3214,5455,54441,103454,5545);
$len = count($array);
for($i=0;$i<$len-1;$i++){
$max = $i;
for($j=$i+1;$j<$len;$j++){
if($array[$max] < $array[$j]){
$max = $j;
}
}
if($max != $i){
$t = $array[$i];
$array[$i] = $array[$max];
$array[$max] = $t;
}
}
print_r($array);