1
、请用
Python
手写实现插入排序。
解析:
插入排序(
Insertion Sort
)的工作原理是通过构建有序序列,对于未排序数据,
在已排序序列中从后向前扫描,找到相应位置并插入。
算法执行步骤:
(
1
)从第一个元素开始,该元素可以认为已经被排序;
(
2
)取出下一个元素,在已经排序的元素序列中从后向前扫描;
(
3
)如果被扫描的元素(已排序)大于新元素,则将被扫描元素后移一位;
(
4
)重复步骤(
3
),直到找到已排序的元素小于或者等于新元素的位置;
(
5
)将新元素插入到该位置后;
(
6
)重复步骤(
2
)
-
(
5
)。
Python
实现
def insert_sort(ary):
n = len(ary)
for i in range(1,n):
if ary[i] < ary[i-1]:
temp = ary[i]
#
待插入的下标
index = i
#
从
i-1
循环到
0 (
包括
0)
for j in range(i-1,-1,-1):
if ary[j] > temp :
ary[j+1] = ary[j]
#
记录待插入下标
index = j