算法导论第三版学习笔记(第二章)

插入排序

a = random.sample(range(0,100),20)##生成排序序列


##非减排序
def sorted_list(alist):
    ##插入法排序
    for j in range(1,len(alist)):
        ##从序列第二个元素开始向前比较
        i = j-1
        key = alist[j]
        while i >=0 and alist[i] >key:
            ##若当前元素大于待插入元素,则继续向前
            alist[i+1] = alist[i]
            ##交换元素位置,将元素整体向后移动
            i-=1
        ##找到目标插入位置
        alist[i+1] = key
    return alist

##非增排序

def sorted_desc(alist):
    print('original_list :' , alist)
    for j in range(1,len(alist)):
        i = j-1
        key = alist[j]
        while i >=0 and alist[i] <key: ##唯一区别
            alist[i+1] = alist[i]
            i -=1
        alist[i+1] = key
    print(alist)

猜你喜欢

转载自blog.csdn.net/weixin_40891417/article/details/88343704