PHP学习笔记十二【数组排序】
<?php $arr=array(0,5,-1); $temp=0; 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; } } } foreach($arr as $val) { echo "<br>".$val; } selectSort($arr); print_r($arr); InsertSort($arr); print_r($arr); //选择排序 function selectSort(&$arr) { $temp=0; for($i=0;$i<=count($arr)-1;$i++) { //假设$i就是最小的数 $minval=$arr[$i]; //记录我认为的最小数的下标 $minIndex=$i; for($j=$i+1;$j<count($arr);$j++) { //说明我们认为的最小值,不是最小 if($minval>$arr[$j]) { $minval=$arr[$j]; $minIndex=$j; } //最后进行交换 $temp=$arr[$i]; $arr[$i]=$arr[$minIndex]; $arr[$minIndex]=$temp; } } } //插入排序 function InsertSort(&$arr) { //先默认下标为0这个数已经有序 for($i=0;$i<count($arr);$i++) { //$insertVal是准备插入的数 $insertVal=$arr[$i]; //准备先和$insertIndex比较 $inserIndex=$i-1; //如果这个条件满足,说明,我们还没有找到合适的位置 while($inserIndex>0&&$insertVal<$arr[$inserIndex]) { //同时把数后移 $arr[$inserIndex+1]=$arr[$inserIndex]; $inserIndex--; } //插入(这时就给$insertVal找到适当的位置) $arr[$inserIndex+1]=$insertVal; } } ?>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。