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

用Python实现一个简单的排序算法

发布时间:2023-12-04 09:15:49

排序算法是计算机程序中常用的一种算法,它可以将一组数据按照一定的规则进行排列,以便于后续的查找和检索。Python提供了多种排序算法的实现方式,包括冒泡排序、选择排序、插入排序、快速排序、归并排序等等。

下面我们将使用Python实现其中的三种排序算法,并给出相应的使用例子。

1. 冒泡排序

冒泡排序是一种基础的排序算法,它的主要思想是从待排序的数据序列中依次比较相邻的两个元素,如果顺序不对则交换它们的位置,通过多次遍历来实现整个序列的排序。冒泡排序的时间复杂度为O(n^2)。

def bubble_sort(lst):
    for i in range(len(lst)-1):
        for j in range(len(lst)-i-1):
            if lst[j] > lst[j+1]:
                lst[j], lst[j+1] = lst[j+1], lst[j]
    return lst

# 使用示例
nums = [4, 2, 1, 3, 5]
sorted_nums = bubble_sort(nums)
print(sorted_nums)  # 输出:[1, 2, 3, 4, 5]

2. 选择排序

选择排序也是一种简单的排序算法,它的主要思想是每次从待排序的数据序列中选择最小(或最大)的元素,将该元素与序列的起始位置交换,然后对剩余的序列继续进行选择和交换,直到完成整个序列的排序。选择排序的时间复杂度为O(n^2)。

def selection_sort(lst):
    for i in range(len(lst)-1):
        min_index = i
        for j in range(i+1, len(lst)):
            if lst[j] < lst[min_index]:
                min_index = j
        lst[i], lst[min_index] = lst[min_index], lst[i]
    return lst

# 使用示例
nums = [4, 2, 1, 3, 5]
sorted_nums = selection_sort(nums)
print(sorted_nums)  # 输出:[1, 2, 3, 4, 5]

3. 插入排序

插入排序是一种直观而简单的排序算法,它的主要思想是将待排序的数据序列划分为已排序和未排序两部分,每次从未排序部分选择一个元素,并将其插入到已排序部分的合适位置,从而逐渐扩大已排序部分的范围,直到完成整个序列的排序。插入排序的时间复杂度为O(n^2)。

def insertion_sort(lst):
    for i in range(1, len(lst)):
        key = lst[i]
        j = i - 1
        while j >= 0 and lst[j] > key:
            lst[j+1] = lst[j]
            j -= 1
        lst[j+1] = key
    return lst

# 使用示例
nums = [4, 2, 1, 3, 5]
sorted_nums = insertion_sort(nums)
print(sorted_nums)  # 输出:[1, 2, 3, 4, 5]

以上是使用Python实现的三种简单的排序算法以及相应的使用示例。根据需要选择合适的排序算法可以在实际开发中提高程序的执行效率。