1.5 堆排序 ? 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 核心思路: 1、depth := length/2 - 1 //节点深度,n,2n+1,2n+2 2、 ...
分类:
编程语言 时间:
2021-03-05 13:28:37
阅读次数:
0
##1.选择排序 public void selectSort(int a[]){ for(int i=0;i<a.length;i++){ int min=i; for(int j=i;j<a.length;j++){ if(a[min]>a[j]) min=j; } int temp=a[i]; ...
分类:
编程语言 时间:
2021-02-26 13:12:47
阅读次数:
0
一、算法步骤 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕。 2、时间复杂度 O(n²) 的时间复杂度 3、代码实现 import java.util.Arrays; /** ...
分类:
编程语言 时间:
2021-02-15 12:00:11
阅读次数:
0
34. 在排序数组中查找元素的第一个和最后一个位置 Difficulty: 中等 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 进阶: 你可以设计并实现时间复杂度为 ...
分类:
编程语言 时间:
2021-02-08 11:42:16
阅读次数:
0
剑指 Offer 36. 二叉搜索树与双向链表 Offer_36 题目描述 题解分析 本题考查的是二叉树的中序遍历以及二叉排序树的特征(二叉排序树的中序遍历序列是升序序列) 利用排序二叉树中序遍历的性质,可以设置一个前置指针和当前指针。 再遍历完当前结点的所有左子树后,可以得到一个数据值仅次与当前结 ...
分类:
编程语言 时间:
2021-02-05 10:52:38
阅读次数:
0
先对数组升序排序。 排序后,顺次枚举数组中的每个数。 令两个子集分别为 \(A\) 与 \(B\), 读入数组为 \(q\). 对于每个 \(q[i]\): 若 \((q[i]-1)\notin A\)(即此数的前驱不在 \(A\) 中,换句话说就是 \(\operatorname{mex}(A)= ...
分类:
其他好文 时间:
2021-02-03 10:42:05
阅读次数:
0
81. 搜索旋转排序数组 II Difficulty: 中等 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。 编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 fal ...
分类:
编程语言 时间:
2021-02-01 12:51:53
阅读次数:
0
每行的元素从左到右升序排列;每列的元素从上到下升序排列。找target是否在矩阵中 方法一:感觉跟问题I没啥区别啊! func searchMatrix(g [][]int, tar int) bool { n, m := len(g), len(g[0]) i, j := 0, m-1 for ; ...
分类:
其他好文 时间:
2021-01-28 12:14:07
阅读次数:
0
230.BST中第k小的元素 基本思想: BST的中序遍历是升序序列。下标为k-1的元素就是第k个元素。 具体实现: 中序遍历后,找下标为k-1的元素。 代码: class Solution: def kthSmallest(self, root, k): """ :type root: TreeN ...
分类:
其他好文 时间:
2021-01-27 14:07:00
阅读次数:
0
581. 最短无序连续子数组 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 请你找出符合题意的 最短 子数组,并输出它的长度。 示例 1: 输入:nums = [2,6,4,8,10,9,15] 输出:5 解释:你只需要对 ...
分类:
编程语言 时间:
2021-01-27 13:10:56
阅读次数:
0