#!/usr/bin/python def insert_sort(li): #将输入的列表以插入的方式排序 #先取出一个值,进行在已经完成的排序列表上循环比较后进行左或者右的插入完成排序 for i in range(1,len(li)): #假定第一个值是已经排好序的第一个列表 所以从下标1开始 temp = li[i] #循环取出无序列表的值 j = i - 1 #循环获取有序列表的最后值的索引 while j >= 0 and temp < li[j] : # j >= 0 则表明了列表已经达到了最左侧,即列表的第一个值已经比较完成 #并且循环比较已经排序列表中的每一个值,如果小于,则进行位置的变动,否则不需要进行变动结束循环 li[i+1] = li[j] #将大的值插入比较值的左边 j = j - 1 #将循环次数减1 控制列表索引 li[j+1] = temp #将取出来的值放在值的右边 _______________ //插入排序PHP //插入排序 function insert_sort($li) { $li_lenght = count($li); for ($i=1; $i < $li_lenght; $i++) { $temp = $li[$i]; echo $temp; for ($j=$i-1; $j >= 0 && ($temp > $li[$j]);) { $li[$j+1] = $li[$j]; $j -= 1; } $li[$j+1] = $temp; echo "<br />"; } var_dump($li); } $li = [1,0,3,4,2,9,7,8,5]; //$li = [1,2,3,4,5,6,7,8,9]; insert_sort($li);
来源:https://www.cnblogs.com/ikai/p/11603398.html