选择排序和插入排序

来源:互联网 发布:ios9越狱优化 编辑:程序博客网 时间:2024/05/21 22:02

排序算法还是挺重要的,除了冒泡排序外我觉得还应该掌握至少2种排序算法,从难易程度看选择排序和插入排序应该不错,至少面对常规面试笔试也足够了,下面我把这两种排序算法的代码贴出来,希望多少可以帮助到菜鸟们吧。

1.选择排序

<?php$arr=array(5,-1,8,6,9,30);for($i=0;$i<count($arr);$i++){$temp=0;//假设当前的数最小$minIndex=$i;$minVal=$arr[$i];for($j=$i+1;$j<count($arr);$j++){//如果有更小的数,则和之前的数交换if($arr[$j]<$minVal){$minIndex=$j;$minVal=$arr[$j];}}$temp=$arr[$i];$arr[$i]=$minVal;$arr[$minIndex]=$temp;}for($f=0;$f<count($arr);$f++){echo $arr[$f]."<br/>";}?>

2.插入排序

这种算法的难点在于对排序过程的理解上,在实在理解不了的情况下,可以记忆一下代码

<?php$arr=array(5,-1,8,6,9,30);for($i=1;$i<count($arr);$i++){$insertVal=$arr[$i];//要插入的位置$insertIndex=$i-1;while($insertIndex>=0&&$insertVal<$arr[$insertIndex]){$arr[$insertIndex+1]=$arr[$insertIndex];$insertIndex--;}//如果当前位置不等于要插入的位置则交换反之则不用交换if($i!=$insertIndex+1){$arr[$insertIndex+1]=$insertVal;}}for($f=0;$f<count($arr);$f++){echo $arr[$f]."<br/>";}?>

下面是运行效果


0 0
原创粉丝点击