<?php
/*
//冒泡法排序
$arr = array(1,3,2,-1,-2);
$temp = 0;
$flag = false;
for($i=0;$i<count($arr)-1;$i++){
for($j=0;$j<count($arr)-1-i;$j++){
if($arr[$j]>$arr[$j+1]){
$temp = $arr[$j];
$arr[$j] = $arr[$j+1];
$arr[$j+1] = $temp;
$flag = true;
}
}
//判断
if(!flag){
break;
}
$flag = false;
}
var_dump($arr);
*/
/*
//选择法排序
$arr = array(0,5,-1);
$temp1 = 0;
for($i=0;$i<count($arr)-1;$i++){
$minValue = $arr[$i];
$minIndex = $i;
for($j=$i+1;$j<count($arr);$j++){
if($minValue>$arr[$j]){
$temp2 = $minValue;
$minValue = $arr[$j];
$arr[$j] = $temp2;
$minIndex = $j;
}
}
$temp1 = $minValue;
$minValue = $arr[$i];
$arr[$i] = $temp1;
}
var_dump($arr);
*/
//插入法排序
$arr = array(1,5,-1);
//默认0下标对应的数已经是有序的了
for($i=1;$i<count($arr);$i++){
$insertVal = $arr[$i];//准备插入的数
$insertIndex = $i-1;//第一个有可能插入的位置
while($insertVal<$arr[$insertIndex]&&$insertIndex>=0){
//数据后移
$arr[$insertIndex+1] = $arr[$insertIndex];
//往前走
$insertIndex--;
}
//出了循环 说明位置已经找到
$arr[$insertIndex+1] = $insertVal;
}
var_dump($arr);
?>
排序
最新推荐文章于 2024-12-13 15:13:27 发布