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)
    
  • 相关阅读:
    python列表切片
    python注释行与段落
    PCL安装与配置
    自动驾驶相关
    (转)ping命令
    (转)linux应用之test命令详细解析
    (转)shell解析命令行的过程以及eval命令
    (转)ssh-keygen 中文手册
    (转)stty 命令说明及使用讲解
    (转)CentOS下的trap命令
  • 原文地址:https://www.cnblogs.com/liuzhanghao/p/15222318.html
Copyright © 2011-2022 走看看