美文网首页Pythoner
Python 排序 快速排序

Python 排序 快速排序

作者: minimore | 来源:发表于2016-03-28 14:27 被阅读37次
# -*- coding: utf-8 -*-
# author: zhonghua
# filename: sort_quick.py
# create: 2016/3/28
# version: 1.0

# 快速排序

def quick(lst, left, right):
    if left >= right:
        return

    key = lst[left]
    low = left
    high = right
    # 大循环
    while low < high:
        # 必须是lst[high] >= key, 否则left和right会停在一个位置重复循环
        while low < high and lst[high] >= key:
            high -= 1
        lst[low] = lst[high]
        # 这里不能是lst[low] <= key, 否则会出现low超出lst范围的情况
        while low < high and lst[low] < key:
            low += 1
        lst[high] = lst[low]
    lst[low] = key
    # 递归
    quick(lst, left, low)
    quick(lst, low + 1, right)

if __name__ ==  '__main__':
    lst = [19, 28, 30, 5, 8, 60, 72, 94, 68, 28]
    quick(lst, 0, len(lst)-1)
    for i in lst:
        print i

相关文章

  • Python排序算法有哪几种?

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

  • 快速排序的Python实现

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

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

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

  • 七大排序算法的 Python

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

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

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

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

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

  • 基础算法笔记 python和C++

    二分查找 python code 选择排序 python code c++ code 快速排序 python c++

  • Python 实现七大排序算法

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

  • 排序

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

  • python 排序算法

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

网友评论

    本文标题:Python 排序 快速排序

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