美文网首页
十大排序算法之六:快速排序(Python)

十大排序算法之六:快速排序(Python)

作者: 李蕴Ronnie | 来源:发表于2019-05-30 22:49 被阅读0次
快速排序
1. 算法步骤

1.1 从数列中挑出一个元素,称为“基准”(pivot);
1.2 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆放在基准后面,相同的数可以摆放到任意一边。在这个分区退出之后,基准就会位于数列的中间位置,这个称为分区(partition)操作;
1.3 递归地(recursive)把小于基准值的子数列和大于基准值的子数列排序。

2. Python代码实现
def quick_sort(l):
    if len(l)<2:
        return l
    mid = l[len(l)//2]
    left, right = [], []
    l.remove(mid)
    for item in l:
        if item >= mid:
            right.append(item)
        else:
            left.append(item)
    return quick_sort(left) + [mid] + quick_sort(right)

l = [2,1,3,5,4]
print(quick_sort(l))

运行结果

[1, 2, 3, 4, 5]
3. Python列表推导式实现
def quick_sort(quick_list):
    if quick_list == []:
        return []
    else:
        mid = quick_list[0]
        left = quick_sort([l for l in quick_list[1:] if l<mid])
        right = quick_sort([r for r in quick_list[1:] if r>mid])
        return left + [mid] + right

quick_list = [2,1,3,5,4]
print(quick_sort(quick_list))

运行结果

[1, 2, 3, 4, 5]

相关文章

  • Algorithm -- 排序算法

    单链表十大经典排序算法冒泡排序选择排序插入排序归并排序快速排序堆排序计数排序桶排序 1. 十大经典排序算法 十大经...

  • Python排序算法有哪几种?

    python排序算法有哪些?python中常见的排序算法有:插入排序、选择排序、冒泡排序、快速排序、归并排序、希尔...

  • 排序算法概述

    十大排序算法:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序、希尔排序、计数排序,基数排序,桶排序 算法...

  • 七大排序算法之快速排序

    七大排序算法之快速排序 @(算法笔记)[排序算法, 快速排序, C++实现] [TOC] 快速排序的介绍: 快速排...

  • 十大排序算法

    算法说明 十大排序算法分别是:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序...

  • 1.2-交换排序-快速排序

    参考链接 交换排序:快速排序(Quick Sort) 白话经典算法系列之六 快速排序 快速搞定 快速排序是C.R....

  • 十大编程算法

    十大编程算法 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο...

  • Python一行代码实现快速排序

    上期文章排序算法——(2)Python实现十大常用排序算法为大家介绍了十大常用排序算法的前五种(冒泡、选择、插入、...

  • 一文搞定十大经典排序算法(Java实现)

    本文总结十大经典排序算法及变形,并提供Java实现。参考文章:十大经典排序算法总结(Java语言实现)快速排序算法...

  • 数据结构和算法排序(三)

    常见十大排序算法: 冒泡排序、选择排序、插入排序、快速排序、堆排序希尔排序、归并排序、计数排序、基数排序、桶排序 ...

网友评论

      本文标题:十大排序算法之六:快速排序(Python)

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