实现插入排序算法。介绍如下:
插入排序的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从前向后扫描,找到相应位置并插入。
本次挑战中,你需要在 insertion_sort.py 文件中补充类 InsertionSort 的空缺部分。
InsertionSort 中的 sort 方法用于进行插入排序(从小到大)。
sort 函数的参数 data 用于指定需要排序的数据,其中数据为数组格式。
sort 函数需要返回排序后的数据。
如果传入的 data 为 None,需要使用 raise 语句显示 TypeError。
如果传入的 data 为空数组,需要返回空数组。
python
class InsertionSort(object):
def sort(self, data):
### 补充代码 ###
if data is None:
raise TypeError("TypeError")
if not data or len(data) == 1:
return data
# 将列表分左右两边,取右边的,向左边插入
# 左边最大下标
for i in range(1,len(data)):
num = data[i]
k = i - 1
while(k>=0 and num<data[k]): #边界 和移动条件
data[k+1]=data[k]
k-=1
data[k+1]=num
return data
pass