wordpress文章加入标签,腾讯cdn加速优化wordpress,邢台市防疫办电话是多少,河池建设银行招聘网站python实现插入排序、快速排序 算法步骤#xff1a; Python实现插入排序快速排序算法步骤#xff1a; Python实现快速排序算法时间复杂度 插入排序是一种简单直观的排序算法。它的基本思想是通过构建有序序列#xff0c;对于未排序数据#xff0c;在已排序序列中从后向前扫… python实现插入排序、快速排序 算法步骤 Python实现插入排序快速排序算法步骤 Python实现快速排序算法时间复杂度 插入排序是一种简单直观的排序算法。它的基本思想是通过构建有序序列对于未排序数据在已排序序列中从后向前扫描找到相应位置并插入。
算法步骤
从第一个元素开始认为它已经被排序。取出下一个元素在已排序的元素序列中从后向前扫描。如果该元素已排序大于新元素将该元素移到下一位置。重复步骤3直到找到已排序的元素小于或等于新元素的位置。将新元素插入到该位置后。重复步骤2-5直到所有元素均排序。
Python实现插入排序
def insertion_sort(lst):for i in range(1, len(lst)):key lst[i]j i - 1while j 0 and key lst[j]:lst[j 1] lst[j]j - 1lst[j 1] keyreturn lst# 示例
lst [12, 11, 13, 5, 6]
sorted_lst insertion_sort(lst)
print(排序后的列表:, sorted_lst)快速排序
快速排序是一种分治算法通常被认为是目前最快的排序算法之一。它的基本思想是通过一趟排序将要排序的数据分割成独立的两部分其中一部分的所有数据都比另一部分的所有数据都要小然后再按此方法对这两部分数据分别进行快速排序整个过程可以递归进行以达到整个数据变成有序序列。
算法步骤
从数列中挑出一个元素称为“基准”pivot。重新排序数列所有比基准值小的元素摆放在基准前面所有比基准值大的元素摆在基准的后面相同的数可以到任一边。在这个分区结束之后该基准就处于数列的中间位置。递归地recursive把小于基准值元素的子数列和大于基准值元素的子数列排序。
Python实现快速排序
def quick_sort(lst):if len(lst) 1:return lstelse:pivot lst[len(lst) // 2]left [x for x in lst if x pivot]middle [x for x in lst if x pivot]right [x for x in lst if x pivot]return quick_sort(left) middle quick_sort(right)# 示例
lst [3, 6, 8, 10, 1, 2, 1]
sorted_lst quick_sort(lst)
print(排序后的列表:, sorted_lst)算法时间复杂度
插入排序的时间复杂度为O(n^2)适用于小规模数据或基本有序的数据。快速排序的平均时间复杂度为O(n log n)最差时间复杂度为O(n^2)但由于其常数因子较小且具有较好的性能因此在实际应用中广泛使用。 通过以上实现可以看到这两种排序算法在不同场景下的适用性。插入排序算法简单直观适用于小规模数据快速排序则效率高适用于大规模数据。