当前位置: 首页 > 后端技术 > PHP

PHP插入排序

时间:2023-03-29 13:40:52 PHP

冒泡排序将数组$arr=[9,7,2,77,31]从小到大排序$arr=[9,7,2,77,31];$length=count($arr);for($i=1;$i<$length;$i++){$tmp=$arr[$i];对于($j=$i-1;$j>=0;$j--){if($tmp<$arr[$j]){$arr[$j+1]=$arr[$j];$arr[$j]=$tmp;}else{休息;}}}print_r($arr);得到结果Array([0]=>2[1]=>7[2]=>9[3]=>31[4]=>77)比较,逻辑大致是这样的。默认第一个元素是最小值,所以从第二个元素开始,和前面的元素比较一次,当i=1j=0时插入到合适的位置;比较7和9,发现7比9小,交换位置。此时得到数组[7,9,2,77,31]i=2j=1;比较2和9,发现2比9小,交换位置。此时得到数组[7,2,9,77,31]j=0;比较2和7,发现2比7小,交换位置。此时得到数组[2,7,9,77,31]i=3j=2;比较77和9,发现77大于9,跳出这个循环,当i=4j=3时数组还是[2,7,9,77,31];比较31和77,发现31比77小,交换位置。此时得到数组[2,7,9,31,77]j=2;比较9和31,发现31大于9,跳出这个循环,数组还是[2,7,9,31,77]