快排
Betternw
这个作者很懒,什么都没留下…
展开
-
【Top K 优先队列 建堆】 215 数组中的第k个最大的元素
题目在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。输入: [3,2,1,5,6,4] 和 k = 2输出: 5输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4思路建立大根堆,弹出k-1个元素,那么堆顶就是第k大的元素。或者建立小跟堆,弹出len-k个元素,堆顶就是第k大的元素代码public int findKthLargest(int[] nums, int k) { Prio原创 2020-06-26 17:56:50 · 257 阅读 · 1 评论 -
【排序算法总结】 912 排序数组
题目描述给你一个整数数组 nums,请你将该数组升序排列。示例 1:输入:nums = [5,2,3,1]输出:[1,2,3,5]示例 2:输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5]分析排序算法代码:选择排序。每一轮选取未排定的部分中最小的部分交换到未排定部分的最开头,经过若干个步骤,就能排定整个数组。即:先选出最小的,再选出第 2 小的,以此类推。public class Solution { // 选择排序:每一轮选择最小元素交换原创 2021-07-04 10:37:28 · 107 阅读 · 0 评论 -
快排
static void quickSort(int arr[]) { if (arr == null || arr.length <= 1) return; quickProcess(arr, 0, arr.length - 1);}static void quickProcess(int[] arr, int L, int R) { if (L >= R) return; int p = partition(arr, L,原创 2020-08-05 10:11:18 · 160 阅读 · 0 评论 -
【快排 【大的i不动】分类标准是等于2 等于0】 75 颜色分类
题目使用整数 0、 1 和 2 分别表示红色、白色和蓝色。输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]思路采用快排的思想代码public void sortColors(int[] nums) { int zero = -1; int two = nums.length; int i = 0; while(i<two){ //往大的区域交换的时候,i不加一,交换过来的数还要再进行判断一次。 //因为不原创 2020-06-21 17:24:10 · 146 阅读 · 0 评论