美文网首页
python实现快速排序简例

python实现快速排序简例

作者: 季先森 | 来源:发表于2019-01-30 15:12 被阅读0次

code:

def QuickSort(myList,start,end):
    #判断low是否小于high,如果为false,直接返回
    if start < end:
        i,j = start,end
        #设置基准数
        base = myList[i]

        while i < j:
            #如果列表后边的数,比基准数大或相等,则前移一位直到有比基准数小的数出现
            while (i < j) and (myList[j] >= base):          
                j = j - 1
                
            #如找到,则把第j个元素赋值给第个元素i,此时表中i,j个元素相等
            myList[i] = myList[j]
            # print('后半区',myList)
            
            #同样的方式比较前半区
            while (i < j) and (myList[i] <= base):
                i = i + 1
            myList[j] = myList[i]
            
             # print('前半区',myList)
           
        #做完第一轮比较之后,列表被分成了两个半区,并且i=j,需要将这个数设置回base
        myList[i] = base
        #递归前后半区
        QuickSort(myList, start, i - 1)
        QuickSort(myList, j + 1, end)
    return myList

#输入列表
List = list(map(int, input().split()))
print(List)
QuickSort(List,0,len(List)-1)
print(List)

  • 注:基准数为第一个数,则必须从右边开始第一步的排序(仔细考虑,对理解快排非常有益)
  • 快速排序(Quicksort)是对冒泡排序的一种改进。
  • 下图为各排序方法的时间复杂度
各排序算法的时间复杂度

相关文章

  • python实现快速排序简例

    code: 注:基准数为第一个数,则必须从右边开始第一步的排序(仔细考虑,对理解快排非常有益) 快速排序(Quic...

  • 快速排序的Python实现

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

  • 排序

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

  • 七大排序算法的 Python

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

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

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

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

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

  • python 排序算法

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

  • Python 实现七大排序算法

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

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

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

  • 快速排序的Python 简单实现

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

网友评论

      本文标题:python实现快速排序简例

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