iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python常用的各种排序算法原理与实现方法小结
  • 337
分享到

python常用的各种排序算法原理与实现方法小结

python排序算法 2023-05-17 14:05:15 337人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

1. 冒泡排序(Bubble Sort) 基本思想:重复地遍历待排序的数列,每次比较相邻的两个元素,如果它们的顺序错误就交换位置,直到没有需要交换的元素为止。 实现代码: def b

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]
    return arr

2. 插入排序(Insertion Sort)

基本思想:将数组分为已排序区间和未排序区间,每次从未排序区间选择一个元素,插入到已排序区间中的合适位置,直到未排序区间为空为止。

实现代码:

def insertion_sort(arr):
    n = len(arr)
    for i in range(1, n):
        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

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]
    return arr

4. 快速排序(Quick Sort)

基本思想:选定一个pivot,将数组分成左右两个部分,使得左边部分中的元素都小于pivot,右边部分中的元素都大于pivot。然后对左右两个部分递归地进行快排。

实现代码:

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[0]
    left, right = [], []
    for x in arr[1:]:
        if x < pivot:
            left.append(x)
        else:
            right.append(x)
    return quick_sort(left) + [pivot] + quick_sort(right)

虽然这些算法都是常见的排序算法,但在实际应用中,不同算法的性能会因数据规模、数据分布等因素而有所不同,需要具体问题具体分析,选择合适的算法来解决。

--结束END--

本文标题: python常用的各种排序算法原理与实现方法小结

本文链接: https://www.lsjlt.com/news/211227.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作