zoukankan      html  css  js  c++  java
  • 183.面试题 17.14. 最小K个数(快速排序)

    简单画图

    class Solution(object):
        def smallestK(self, arr, k):
            """
            :type arr: List[int]
            :type k: int
            :rtype: List[int]
            """
            self.quick_sort(arr, 0, len(arr) - 1)
            print(arr)
    
        def quick_sort1(self, arr, start, end):
            """快排1"""
            if start >= end: return
            left, right = start, end
            temp = arr[left]
            while left < right:
                while left < right and arr[right] >= temp:
                    right -= 1
                arr[left] = arr[right]
    
                while left < right and arr[left] <= temp:
                    left += 1
                arr[right] = arr[left]
    
            arr[left] = temp
            self.quick_sort(arr, start, left-1)
            self.quick_sort(arr, left+1, end)
    
        def quick_sort(self, arr, start, end):
            """快排2: 对应图"""
            if start >= end: return
            left, right = start, end
            temp = arr[left]
            while left < right:
                while left < right and arr[right] >= temp:
                    right -= 1
                while left < right and arr[left] <= temp:
                    left += 1
                arr[right], arr[left] = arr[left], arr[right]
    
            arr[start], arr[left] = arr[left], temp
            self.quick_sort(arr, start, left-1)
            self.quick_sort(arr, left+1, end)
    
    
    s1 = Solution()
    arr = [1,3,5,7,2,4,6,8,1]; k = 4
    root = s1.smallestK(arr, k)
    print(root)
    
  • 相关阅读:
    PYSpark DataFrame
    wheel用户组
    CURD是什么?
    mysql binlog日志清理
    skype的图片默认保存路径
    bootstrap使用总结
    库表批量新增id字段
    谷粒商城-问题汇总
    开发工具问题汇总
    feign客户端,参数无法传递复杂对象
  • 原文地址:https://www.cnblogs.com/liuzhanghao/p/15222318.html
Copyright © 2011-2022 走看看