1.介绍 STL中迭代器是连接算法和容器的工具,迭代器可以在不了解容器内部原理的情况下遍历容器。 2.迭代器的实现 迭代器要遍历容器的元素,所以它内部必须封装一个与容器类型相关联的指针,通过重载++、--、*等操作符实现迭代器操作。 迭代器是一个类模板,主要包括一个指针,可以包含各种类型的元素,根据 ...
分类:
其他好文 时间:
2021-03-10 13:41:27
阅读次数:
0
Reverse Linked List II 反转链表 Given the head of a singly linked list and two integers left and right where left <= right, reverse the nodes of the list ...
分类:
编程语言 时间:
2021-03-10 13:27:14
阅读次数:
0
要了解最小生成树的概念,我们首先要知道生成树是什么 生成树的定义 一个有 n 个结点的联通图的生成树是原图的极小连通子图,生成树包含原图中的所有 n 个结点,并且有保持图连通的最少的边。 最小生成树的性质 1.容易想象,要保证n个节点联通,至少要有n-1条边,所以一个有n个节点的生成树必有n-1条边 ...
分类:
编程语言 时间:
2021-03-10 13:25:00
阅读次数:
0
博客介绍: 本文是对大二上学期通过学习过数据结构,时间复杂度,等只是后对曾经学习过的简单运算逻辑,算法进行优化。本人的编程能力有限,仅在基础之上作出浅薄的修改。 (一)、避免不必要的整数除法 整数除法是整数运算中最慢的,所以应该尽可能避免。一种可能减少整数除法的地方是连除,这里除法可以由乘法代替。这 ...
分类:
其他好文 时间:
2021-03-10 13:23:11
阅读次数:
0
shuffle算法-洗牌算法 算法的作用 打乱顺序 算法的实现 等概率的抽取数组中的每一个数,跟最后一个元素交换 // 使用闭包,防止变量污染 (function() { function shuffle() { // 调用形式: arr.shuffle(); 这里的this指向Array实例 le ...
分类:
编程语言 时间:
2021-03-10 13:22:24
阅读次数:
0
HashMap 源码分析 0. 前置知识 0.1 位运算 0.2 哈希值、哈希表、哈希函数 哈希值 通过一定的散列算法,把一个不固定长度的输入,转成一个固定长度的输出,输出的结果我们称之为哈希 map中,hash就是一个int值 哈希表: 存储哈希值的数组 -- 存取散列值(哈希值)的一个容器 哈希 ...
分类:
其他好文 时间:
2021-03-10 13:04:15
阅读次数:
0
数组声明创建 声明数组变量,两种方法 int[] num; int num[]; 使用 new 创建数组 num = new int[arraySize]; 可以同时进行声明和创建数组 int[] num = new int[arraySize]; 数组初始化 静态初始化 int[] a = {1, ...
分类:
编程语言 时间:
2021-03-09 13:55:36
阅读次数:
0
问题 我们定义无向连通图的最小生成树为边权和最小的生成树 解析 求最小生成树通常有两种做法: 1.Kruskal 将边权从小到大加边,若加边以后成环则放弃加边,直到加到n – 1条边,结束。(n为点集大小)加得到的边集就构成了一颗最小生成树。 2.Prime算法 用集合A,B分别表示得到的点集和未得 ...
分类:
编程语言 时间:
2021-03-09 13:34:48
阅读次数:
0
为什么要说 HashMap 与 LinkedHashMap?第一:这两种数据结构是 Java Coder 中经常使用的数据结构、第二:这两种结构是最合适的能说明链表与数组的结构关系。在开始之前首先必须清楚一个概念,什么是 hash 值?hash 值是指将一个二进制的值通过 hash 算法将其转换成一 ...
分类:
其他好文 时间:
2021-03-09 13:31:00
阅读次数:
0
二叉树 1.1 为什么需要树这种数据结构 1) 数组存储方式的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。 缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 [示意图] 画出操作示意图: 2) 链式存储方式的分析 优点:在一定程度上对 ...
分类:
编程语言 时间:
2021-03-09 13:27:10
阅读次数:
0