用Python编写函数实现数组排序
发布时间:2023-06-06 13:33:29
要实现数组排序,我们需要掌握常用的排序算法,比如冒泡排序、快速排序、插入排序等,本文将以 Python 语言为例,分别介绍这些排序算法的实现。
1. 冒泡排序
冒泡排序是一种比较简单的排序算法,它的基本思想是,从未排序的数列中,依次比较相邻的两个数,如果前面的数大于后面的数,就交换这两个数的位置,经过一轮比较后,最大的数就会跑到数列的末尾,然后对剩余的数列继续重复这个比较交换的过程,直到所有的数都排好序为止。
以下是冒泡排序的 Python 代码实现:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
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
2. 快速排序
快速排序是一种常用的排序算法,它的基本思想是,选择一个基准数,然后将所有小于基准数的数放在它的左边,将所有大于基准数的数放在它的右边,然后分别对左边和右边的数列进行排序,直到所有的数都排好序为止。
以下是快速排序的 Python 代码实现:
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr)//2]
left, right = [], []
for num in arr:
if num < pivot:
left.append(num)
elif num > pivot:
right.append(num)
return quick_sort(left) + [pivot] + quick_sort(right)
3. 插入排序
插入排序是一种比较简单的排序算法,它的基本思想是,将待排序的数列分为已排序和未排序两部分。每次从未排序部分取出一个数,将其插入到已排序部分的合适位置,使得已排序部分仍然有序。
以下是插入排序的 Python 代码实现:
def insertion_sort(arr):
for i in range(1, len(arr)):
j = i
while j > 0 and arr[j] < arr[j-1]:
arr[j], arr[j-1] = arr[j-1], arr[j]
j -= 1
return arr
以上就是三种常用的排序算法的 Python 代码实现。不同的算法在时间复杂度和空间复杂度上会有所不同,根据不同的需求选择合适的排序算法能够提高代码的执行效率。
