插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
想要学习Python或交流Python的同学欢迎私聊探讨~评论区DD我,无偿分享学习资料!!
算法描述:
- 从第一个元素开始,该元素可以认为已经被排序;
- 取出下一个元素,在已经排序的元素序列中从后向前扫描;
- 如果该元素(已排序)大于新元素,将该元素移到下一位置;
- 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
- 将新元素插入到该位置后;
- 重复步骤2~5。
# 创建插入排序函数 insertionSort def insertionSort(arr): # 循环遍历需要排序的列表长度,每个元素用i表示 for i in range(len(arr)): # 已排序序列,赋值给preIndex preIndex = i - 1 # 当前未序列赋值给current current = arr[i] # 当满足已排序元素的下标>=0并且已排序元素的值>当前未排序序列的元素时 while preIndex >= 0 and arr[preIndex] > current: # 较大的值往后放 arr[preIndex+1] = arr[preIndex] # 较小的值放在前面(下标从右到左是- 从左到右是+) preIndex -= 1 # 未排序元素的值会插入到已排序的列表中 arr[preIndex+1] = current return arr list1 = insertionSort([28,5,67,34,97,66,18,32]) print(list1)