zoukankan      html  css  js  c++  java
  • 快速排序-Python

    思路:选择第0位置的元素作为基准,遍历列表将小于基准的放入基准点位置,基准点右移

    def quick_sort(alist,start,end):

      if start > end:

        return

      mid = start

      for i in range(start+1,end+1):  # 对end+1是因为range不包含结束位,因此end开始的参数不可以为列表的长度,需要len(alist)-1

        if alist[i] < alist[mid]:

          tmp = alist[i]

          del alist[i]

          alist.insert(mid,tmp)

          mid += 1

      # 对左右侧分别进行快排

      quick_sort(alist,start,mid-1)

      quick_sort(alist,mid+1,end)

    =================以下为百度百科===========================

    def quickSort(array):
        if len(array) < 2:  # 基线条件(停止递归的条件)
            return array
        else:  # 递归条件
            baseValue = array[0]  # 选择基准值
            # 由所有小于基准值的元素组成的子数组
            less = [m for in array[1:] if m < baseValue]
            # 包括基准在内的同时和基准相等的元素,在上一个版本的百科当中,并没有考虑相等元素
            equal = [w for in array if w == baseValue]
            # 由所有大于基准值的元素组成的子数组
            greater = [n for in array[1:] if n > baseValue]
        return quickSort(less) + equal + quickSort(greater)
     

      

  • 相关阅读:
    第一章、web应用安全概论--web应用系统介绍--TCP/IP协议
    IIS配置导入导出
    shell习题第10题:打印每个单词的字数
    腾讯云的对象存储COS
    shell习题第9题:sed的常用用法
    shell习题第8题:监控nginx的502状态
    shell习题第7题:备份数据库
    shell习题第6题:监听80端口
    Python的math模块
    Python模块
  • 原文地址:https://www.cnblogs.com/Sksitigarbha/p/10145023.html
Copyright © 2011-2022 走看看