zoukankan      html  css  js  c++  java
  • 快速排序的python实现

    def quick_sort(array, left, right):
        if left < right:
            base_index = division(array, left, right)
            quick_sort(array, left, base_index - 1)  # 对小于基准值的再次进行分割
            quick_sort(array, base_index + 1, right)  # 对大于基准值的再次进行分割
    
    
    def division(array, left, right):
        base_value = array[right]
        i = left
        for j in range(left, right):  # 遍历除最后一个元素的其他元素
            if array[j] <= base_value:  # 和基准值对比
                array[i], array[j] = array[j], array[i]  # 小于基准值,则替换到list前
                i += 1  # 替换过后,往后移一位,准备接受下次替换
        array[i], array[right] = array[right], array[i]  # 遍历完成后,将基准值放到所有小于它的值之后
        return i  # 返回基准值的index,用于分割列表
    
    
    if __name__ == '__main__':
        a = [random.randint(1, 1000) for i in range(50)]
        quick_sort(a, 0, len(a) - 1)
        print a
  • 相关阅读:
    LeetCode 12. Integer to Roman
    个人博客09
    个人博客08
    人机交互之我的输入法
    学习进度条(第六周)
    《梦断代码》阅读笔记02
    个人博客07
    学习进度条(第五周)
    个人博客06
    个人博客05
  • 原文地址:https://www.cnblogs.com/small-office/p/9392375.html
Copyright © 2011-2022 走看看