php版本:
function insertSort($arr)
{
$count = count($arr);
if ($count < 2) {
return $arr;
}
for ($i = 1; $i < $count; $i++) {
// 当前值
$temp = $arr[$i];
for ($k = $i - 1; $k >= 0; $k--) {
// 条件成立,比较值后挪一位,将当前值替换成比较值
// 倒序 $temp > $arr[$k]
if ($temp < $arr[$k]) {
$arr[$k + 1] = $arr[$k];
$arr[$k] = $temp;
}
}
}
return $arr;
}
print_r(insertSort($arr));
python版本:
def insert_sort():
arr = [11, 3, 5, 10, 16, 7, 32, 83, 23, 54, 29, 96]
for i in range(1, len(arr)):
tmp = arr[i] # 保留一份正在比较的值
j = i - 1
while tmp < arr[j] and j >= 0:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = tmp
print(arr)
insert_sort()
|