
排序
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 · 219 阅读 · 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 · 136 阅读 · 0 评论 -
Python调用堆排序
Python调用堆排序,获取低k大元素 没有使用题中说的快排,先试试堆排序 题目描述 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。 测试样例: [1,3,5,2,2],5,3 返回:2 # -*- coding:utf-8 -*- import heapq class Finder: def findKth(self, a, n, K): # write code原创 2020-09-11 21:32:43 · 281 阅读 · 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 · 176 阅读 · 0 评论