美文网首页
快速排序的Python实现

快速排序的Python实现

作者: 牧码人zhouz | 来源:发表于2021-04-28 16:12 被阅读0次

1、双指针法

def quick_sort(arr, start, end):
    # 递归结束条件
    if start >= end:
        return

    pivot = arr[start]
    left = start
    right = end

    while left != right:
        while right > left and arr[right] > pivot:
            right -= 1

        while left < right and arr[left] <= pivot:
            left += 1

        if left < right:
            arr[right], arr[left] = arr[left], arr[right]

    arr[start] = arr[left]
    arr[left] = pivot

    quick_sort(arr, start, left-1)
    quick_sort(arr, left+1, end)

2、单指针法

def quick_sort2(arr, start, end):
    # 递归结束条件
    if start >= end:
        return

    pivot = arr[start]
    mark = start
    cur = start

    while cur <= end:
        if arr[cur] < pivot:
            mark += 1
            arr[mark], arr[cur] = arr[cur], arr[mark]

        cur += 1

    arr[start] = arr[mark]
    arr[mark] = pivot

    quick_sort2(arr, start, mark-1)
    quick_sort2(arr, mark+1, end)

相关文章

  • 快速排序的Python实现

    目录 快速排序的介绍 快速排序的Python实现 快速排序的介绍 快速排序(quick sort)的采用了分治的策...

  • 排序

    排序 快速排序 归并排序 计数排序 Python实现 理解 详解 稳定:如果a原本在b前面,而a=b,排序之后a仍...

  • python 排序算法

    文章概述 介绍各大常用经典的排序算法和效率,以及python实现常用算法(冒泡排序,选择排序,快速排序,插入排序)...

  • 七大排序算法的 Python

    本文用Python实现了插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。 1、插...

  • 八大排序算法的 Python 实现(转)

    本文用Python实现了插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。 1、插...

  • Python实现程序员必备之排序算法汇总

    本文用Python实现了快速排序、插入排序、希尔排序、归并排序、堆排序、选择排序、冒泡排序共7种排序算法。 一、快...

  • Python 实现七大排序算法

    本文用 Python 实现了插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序。 先整体看一下...

  • 快速排序的Python 简单实现

    快速排序的Python 简单实现[https://www.cnblogs.com/clemente/p/11168...

  • python实现快速排序(QuickSort)

    python实现【快速排序】(QuickSort) 算法原理及介绍 快速排序的基本思想:通过选择一个关键字,一趟排...

  • 快速排序算法的实现( Golang 和 Python )

    Python 中一行代码搞定快排 Python 快速排序 Golang 快速排序

网友评论

      本文标题:快速排序的Python实现

      本文链接:https://www.haomeiwen.com/subject/qsswrltx.html