生若直木,不语斧凿.

经典排序算法

Posted on By xiaoyongsheng
Email: xiaoyongsheng@hotmail.com
Views:

插入排序-直接插入排序

基本思路

  • 假定第一个元素为已排列元素
  • 取出下个元素i:
    • 从后向前扫描已排序元素j:
      • 若j大于i,把j后移一个单位;
      • 若j小于等于i, 把i插入到j之后;

代码实现

def insert_sort(in_list):
    if len(in_list) == 1:
        return in_list
    for i in range(1, len(in_list)):
        for j in range(i-1, -1, -1):
            if in_list[j] > in_list[j+1]:
                in_list[j], in_list[j+1] = in_list[j+1], in_list[j]
    return in_list