
快排
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 · 347 阅读 · 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 · 145 阅读 · 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 · 189 阅读 · 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 · 173 阅读 · 0 评论