概述 前面算法系列文章有写过分治算法基本原理和实践,对于分治算法主要是理解递归的过程。二分法是分治算法的一种,相比分治算法会简单很多,因为少了递归的存在。 在计算机科学中,二分查找算法(英语:binary search algorithm),也称折半搜索算法(英语:half-interval sea ...
分类:
其他好文 时间:
2021-07-26 16:54:02
阅读次数:
0
数据结构 Java 数据结构 List List 都有序; 线程不安全; 有长度; 内部持有 modCount 记录修改次数 ArrayList 默认长度为10、超出长度时进行扩容(0.5倍),最大长度 2 的 31 次方 -8, 超出会OOM; 特点: 查快删改慢 LinkedList 双向链表, ...
分类:
其他好文 时间:
2021-07-12 18:04:31
阅读次数:
0
public class MergeSort<T extends Comparable<T>> extends Sort<T> { private T[] leftArray; @Override protected void sort() { leftArray = (T[]) new Compa ...
分类:
编程语言 时间:
2021-07-01 16:59:30
阅读次数:
0
恢复内容开始 算法期末考试复习题 XD专用 program 2 1、归并排序在最差最好平均情况下的时间复杂度分别是多少? 答案:nlgn nlgn 2、(判断) 归并排序的空间复杂度是O(1)? (判断) 答案:false 应该是 O(n) 3、优先队列提取最大元素的算法时间复杂度?(用O表示) 答 ...
分类:
编程语言 时间:
2021-06-29 15:31:00
阅读次数:
0
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。 例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 示例 1: 输入:[3,4,5,1,2] 输出:1 题解: 二分查找法 由 ...
分类:
编程语言 时间:
2021-06-29 15:27:44
阅读次数:
0
常见算法 算法与数据结构是面试考察的重中之重,也是日后刷题时需要着重训练的部分。 简单的总结一下,大约有这些内容: 算法 - Algorithms 1、排序算法:快速排序、归并排序、计数排序2、搜索算法:回溯、递归、剪枝技巧3、图论:最短路、最小生成树、网络流建模4、动态规划:背包问题、最长子序列、 ...
分类:
编程语言 时间:
2021-06-22 18:19:06
阅读次数:
0
二分查找 对于一个有序的可迭代序列,查找一个元素时,每次都猜中间的那个数,这样一次可以排除掉一半的数据 Python版本 def main(ary, item): low = 0 high = len(ary) - 1 while low <= high: mid_index = (low+high ...
分类:
编程语言 时间:
2021-06-21 21:14:15
阅读次数:
0
第二章第5节 数组 1 创建数组的格式 常用格式1(创建数组的同时,指定数组中的内容): ? 数据类型[] 数组名称 = {数据1,数据2,数据3...数据n}; ? int[] ages = {10,11,12,13,14}; 常用格式2(创建数组,并指定长度,不指定数组中的内容): ? 数据类型 ...
分类:
编程语言 时间:
2021-06-16 17:50:54
阅读次数:
0
这是一道交互题 交互库有三个长为 \(n_a,n_b,n_c\) 的不降正整数序列 \(a,b,c\),不超过 \(100\) 次单点查询求 \(k\)-th。 \(n_a,n_b,n_c\le 10^5\),\(a_i,b_i,c_i\le 10^9\)。 完全不会,牛逼坏了。 考虑归并排序的过程 ...
分类:
其他好文 时间:
2021-06-13 10:32:00
阅读次数:
0
数组的声明 int[] a; short[][] as; short s,aas[][]; //但通常将[][]放在变量之前 Object[] ao,aos; Collection<?>[] u; //声明具体元素类型未知的数组 数组的创建 数组在创建之前,不能使用,数组的创建有两种,一种是直接使用 ...
分类:
编程语言 时间:
2021-06-07 21:06:31
阅读次数:
0