zoukankan      html  css  js  c++  java
  • 快速排序——Python实现

    一、排序思想

          快速排序思想请参见:https://www.cnblogs.com/luomeng/p/10587492.html

    二、python实现

    def quickSort(arr, leftIndex, rightIndex):
        """
        python实现快速排序
        :param arr: 待排序列
        :param leftIndex: 待排序列开始索引
        :param rightIndex: 待排序列结束索引
        """
        if leftIndex >= rightIndex:
            return
    
        # 待排序列开始索引
        left = leftIndex
    
        # 待排序列结束索引
        right = rightIndex
    
        # 基准值
        key = arr[left]
    
        # 从左右两边交替扫描,直到left = right
        while left < right:
    
            # 从右往左扫描,找到第一个比基准值小的元素
            while left < right and arr[right] >= key:
                right -= 1
    
            # 找到这种元素将arr[right]放入arr[left]中
            arr[left] = arr[right]
    
            # 从左往右扫描,找到第一个比基准值大的元素
            while left < right and arr[left] <= key:
                left += 1
    
            # 找到这种元素将arr[left]放入arr[right]中
            arr[right] = arr[left]
    
        # 基准值归位
        arr[left] = key
    
        # 对基准值左边的元素进行递归排序
        quickSort(arr, leftIndex, left - 1)
    
        # 对基准值右边的元素进行递归排序
        quickSort(arr, right + 1, rightIndex)
    
    
    nums = [5, 8, 123, 2, 3, 0, 6, 12, 45, 1, 3, 5, 23, 11, 7]
    
    quickSort(nums, 0, len(nums) - 1)
    
    print(nums)
  • 相关阅读:
    面试汇总-待整理
    javaWeb2之Jsp
    Spring常用注解
    消费者、生产者模型
    网络知识之http请求
    设置Centos时间
    安装hive
    在Ubuntu上安装mysql(5.17.19)
    rabbitmq学习——主题路由
    rabbitmq学习——routingkey
  • 原文地址:https://www.cnblogs.com/luomeng/p/10680997.html
Copyright © 2011-2022 走看看