![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
qy_zhizi
HUST研究僧-计算机视觉
展开
-
归并排序
归并排序(容易错)#%%arr = [4,6,7,8,7,1,2,3]print(arr)def mergeSort(arr, lo, hi): if hi -lo <= 1: # 这里错写成 hi - lo < 1: 无法跳出递归,因为此时lo = 0, hi = 1 return mi = (lo + hi) // 2 mergeSort(arr, lo, mi) mergeSort(arr, mi, hi) B = arr[l原创 2020-10-10 22:45:02 · 187 阅读 · 0 评论 -
寻找第K大元素
# -*- coding:utf-8 -*-class Finder: def findKth(self, a, n, K): # write code here res = None def dfs(start, end): s = start; e = end p = a[start] while s < e: while s <.原创 2020-09-12 16:10:34 · 113 阅读 · 0 评论 -
Python调用堆排序
Python调用堆排序,获取低k大元素没有使用题中说的快排,先试试堆排序题目描述有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。测试样例:[1,3,5,2,2],5,3返回:2# -*- coding:utf-8 -*-import heapqclass Finder: def findKth(self, a, n, K): # write code原创 2020-09-11 21:32:43 · 257 阅读 · 0 评论 -
手撕推排序
前 K 个高频元素class Solution: # 小根堆调整 def heapAdjust(self,L,start,end): i = start; j = 2*i; temp = L[start] while j <= end: if j < end and L[j][1] > L[j+1][1]: j = j+1 if temp[1] > .原创 2020-08-11 21:44:09 · 156 阅读 · 0 评论