📅  最后修改于: 2023-12-03 15:04:36.387000             🧑  作者: Mango
在编程中,排序是一种被广泛使用的功能。Python提供了多种排序算法,可以根据不同的应用场景选择合适的算法。
冒泡排序(Bubble Sort)是一种基础的排序算法,它的基本思想是通过相邻的元素比较并交换位置,将较大的元素逐渐“冒泡”到数列的末端。具体实现可以参考下面的代码。
def bubble_sort(lst):
n = len(lst)
for i in range(n - 1):
for j in range(n - 1 - i):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
return lst
选择排序(Selection Sort)是一种简单的排序算法,它的基本思想是每次从未排序的部分中选择最小的元素,将它与已排序部分的末尾元素交换位置。具体实现可以参考下面的代码。
def selection_sort(lst):
n = len(lst)
for i in range(n - 1):
min_idx = i
for j in range(i + 1, n):
if lst[j] < lst[min_idx]:
min_idx = j
lst[i], lst[min_idx] = lst[min_idx], lst[i]
return lst
插入排序(Insertion Sort)是一种简单的排序算法,它的基本思想是将待排序序列分为已排序部分和未排序部分,然后依次将未排序部分的元素插入到已排序部分的适当位置。具体实现可以参考下面的代码。
def insertion_sort(lst):
n = len(lst)
for i in range(1, n):
j = i
while j > 0 and lst[j] < lst[j - 1]:
lst[j], lst[j - 1] = lst[j - 1], lst[j]
j -= 1
return lst
快速排序(Quick Sort)是一种高效的排序算法,它的基本思想是通过分治策略将待排序序列不断划分成两个子序列,然后对子序列进行递归排序。具体实现可以参考下面的代码。
def quick_sort(lst):
if len(lst) <= 1:
return lst
pivot_idx = len(lst) // 2
pivot = lst.pop(pivot_idx)
left, right = [], []
for num in lst:
if num < pivot:
left.append(num)
else:
right.append(num)
return quick_sort(left) + [pivot] + quick_sort(right)
Python中提供了多种排序算法,包括冒泡排序、选择排序、插入排序和快速排序等。在实际应用中,应根据不同的场景选择合适的算法来进行排序,以提高程序效率。