插入排序算法(Python实现)

    科技2025-08-21  16

    #定义排序数组 arr = [5,8,1,3,6,2,4,7] #元素移动次数 count = 0 def insertSort(arr,count): #插入排序过程,从第二个开始插入 for i in range(1,len(arr)): #因为需要向前遍历,因而使用while操作 j = i - 1 #插入值,因为排序过程位置可能被覆盖 value = arr[i] while j >= 0: if arr[j] > value: #当前下标元素大于插入值,此时当前元素后移 arr[j+1] = arr[j] count = count + 1 else: #找到插入位置了 break #下标前移,找插入位置 j = j - 1 #如果放到if中,解决不了当前插入元素为最小值情况 #因为后面减了一次,所以加上补齐 arr[j+1] = value print("\n元素交换次数: " + str(count),end=" ") #打印数组 def printArr(arr): for item in arr: print(item,end=" ") if __name__ == '__main__': print("排序前数组:") printArr(arr) insertSort(arr,count) print("\n排序后数组:") printArr(arr)
    Processed: 0.023, SQL: 8