数据结构与算法——插入排序

CSDN话题挑战赛第2期
参赛话题:学习笔记


执行流程图

每次都将后面没有排好序的元素插入到前面排好序的元素中
数据结构与算法——插入排序_第1张图片

代码实现

def insertSort(nums):
    n=len(nums)     #数组的长度
    for i in range(n-1):
        curNum=nums[i+1]        #无序区的第一个元素的值
        idx=i       #有序区的最后一个元素的索引
        while nums[idx]>curNum and idx>=0:
            nums[idx+1]=nums[idx]   #把有序区的元素往后挪一位
            idx-=1      #指针往前移,以此来从后往前遍历有序区
        nums[idx+1]=curNum


test=[9,3,1,2,7,5]
insertSort(test)
print(test)

时间复杂度O(n^2)
稳定性:稳定


数据结构与算法——插入排序_第2张图片

你可能感兴趣的:(数据结构与算法,算法,数据结构,c++)