class InsertSort:
def __init__(self,List):
return self.main(List)
def noOrder(self,i ,List):
return List[i] < List[i - 1]
def fixedPosition(self, j, List):
temp = List[j]
for j in range(j, 0, -1):
if List[j] < temp:
return j
def movePosition(self, st, en, List):
for i in range(en, st - 1, -1):
List[i + 1] = List[i]
def main(self, List):
for i in range(len(List ) - 1, 0, -1):
if self.noOrder(i, List):
j = self.fixedPosition(i, List)
self.movePosition(j, i - 1, List)
return List
class InsertSort: #(插入排序) | ||
int | i | 记录当前检测指针的位置 |
int | j | 记录当前回溯指针的位置 |
bool | order(i, List) | 返回列表List在(i-1 ~ i)的范围内是否有序,i为列表索引 |
int | fixedPosition(j, List) | 返回List[j]在列表j-1项前合适的位置,这里假设列表j-1项前是有序的 |
movePosition(st, en, List) | 将列表List在(st ~ en)范围内的元素整体向后移一位 | |
list | __init__(list List) | 调用main(),并返回值,以实现函数的效果 |
list | main(list List) | API主函数 |