码迷,mamicode.com
首页 > 编程语言 > 详细

快速排序-Python

时间:2018-12-19 19:34:35      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:参数   value   位置   sort   python   comment   数组   快速   ber   

思路:选择第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)
 

  

快速排序-Python

标签:参数   value   位置   sort   python   comment   数组   快速   ber   

原文地址:https://www.cnblogs.com/Sksitigarbha/p/10145023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!