Python中排序算法有哪些
更新时间:2023-08-24前言
排序算法是计算机科学中的常见问题,目标是将一个数据集合按照一定规则进行排序。Python提供了多种排序算法,每个算法都有不同的优缺点,适用于不同的数据集合和问题特征。
冒泡排序
冒泡排序是一种简单的比较排序算法,它通过相邻元素的比较和交换来进行排序。算法的基本思想是在每一轮中,从左到右不断比较相邻的元素,将大的元素交换到右侧,直到整个序列有序。
def bubble_sort(arr): n = len(arr) for i in range(n-1): for j in range(n-i-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr
选择排序
选择排序是一种简单的不稳定排序算法,它通过不断选择最小的元素并将其放置在已排序部分的末尾来进行排序。算法的基本思想是在每一轮中,从待排序序列中选择最小的元素,与序列的第一个元素交换,然后继续从待排序序列中选择最小的元素进行交换。
def selection_sort(arr): n = len(arr) for i in range(n-1): min_index = i for j in range(i+1, n): if arr[j] < arr[min_index]: min_index = j arr[i], arr[min_index] = arr[min_index], arr[i] return arr
插入排序
插入排序是一种简单的稳定排序算法,它通过构建有序序列,对未排序的元素逐个插入到已排序序列的适当位置来进行排序。算法的基本思想是将序列分为已排序和未排序两部分,初始时已排序部分只有一个元素,然后不断从未排序部分取出元素插入到已排序部分,直到整个序列有序。
def insertion_sort(arr): n = len(arr) for i in range(1, n): key = arr[i] j = i - 1 while j >= 0 and arr[j] > key: arr[j+1] = arr[j] j -= 1 arr[j+1] = key return arr
总结
Python中提供了多种排序算法,包括冒泡排序、选择排序和插入排序等。这些算法各有特点,可以根据具体问题的需求选择合适的算法进行排序。