欢迎访问宙启技术站
智能推送

Python实现的简单排序算法示例

发布时间:2023-12-04 13:11:02

Python中有很多种简单的排序算法,本文将介绍其中的三种常用的排序算法:冒泡排序、插入排序和选择排序,并且给出每种排序算法的代码示例和使用例子。

1. 冒泡排序(Bubble Sort)

冒泡排序是一种交换排序算法,它的基本思想是从待排序的数据中不断比较相邻的两个元素,如果它们的顺序错误就交换位置,直到整个序列按照从小到大的顺序排列。

冒泡排序的实现代码如下:

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]

使用例子:

arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print(arr)

输出结果为:[11, 12, 22, 25, 34, 64, 90]

2. 插入排序(Insertion Sort)

插入排序是一种简单直观的排序算法,它的基本思想是将一个待排序的元素逐个插入到已排序的序列中的合适位置,直到整个序列排列有序。

插入排序的实现代码如下:

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

使用例子:

arr = [64, 34, 25, 12, 22, 11, 90]
insertion_sort(arr)
print(arr)

输出结果为:[11, 12, 22, 25, 34, 64, 90]

3. 选择排序(Selection Sort)

选择排序是一种简单直观的排序算法,它的基本思想是每次从待排序的数据中选择最小(或最大)的元素,放到已排序序列的末尾,直到整个序列排列有序。

选择排序的实现代码如下:

def selection_sort(arr):
    n = len(arr)
    for i in range(n-1):
        min_idx = i
        for j in range(i+1, n):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i]

使用例子:

arr = [64, 34, 25, 12, 22, 11, 90]
selection_sort(arr)
print(arr)

输出结果为:[11, 12, 22, 25, 34, 64, 90]

以上就是三种简单排序算法的Python实现代码和使用例子。当然,这些排序算法在实际应用中可能并不是最优的选择,但它们对理解排序算法的原理和逻辑都是非常有帮助的。