ICode9

精准搜索请尝试: 精确搜索
  • 算法数据结构系列-实践篇-数组算法2022-07-27 10:01:50

    @目录Offer-03 数组中重复的数字Offer-66 构建乘积数组Offer-45 把数组排成最小的数Offer-49 判断丑数Offer-29 顺时针打印矩阵offer-61 扑克牌中的顺子Offer-57 和为s的两个数字Offer-57-II 和为s的连续正数序列Offer-59-1 滑动窗口的最大值Offer-44 数字序列中某一位的数字Offer

  • 数据结构与算法2022-07-27 09:01:58

    数据结构与算法描述 程序 = 数据结构 + 算法 数据结构是算法的基础, 换言之,想要学好算法,需要把数据结构学到位。 线性结构和非线性结构。 数据结构包括:线性结构和非线性结构。 线性结构 线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系 线性结构有两种

  • 数据结构与算法2022-07-26 22:03:00

    数据结构与算法描述 程序 = 数据结构 + 算法 数据结构是算法的基础, 换言之,想要学好算法,需要把数据结构学到位。 线性结构和非线性结构。 数据结构包括:线性结构和非线性结构。 线性结构 线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系 线性结构有两种

  • B+树与跳表(SkipList)2022-07-26 09:36:13

    为什么 MYSQL 使用 B+树作为 InnoDB 引擎的索引结构?   <Mysql为什么使用B+树做索引>一文从两个方面介绍了Mysql为什么选择B+Tree作为InnoDB引擎索引的数据结构,本文再做一下简单的总结。   Mysql数据库的数据被分割为多个页以文件形式储存在硬盘上的。因此我们每次进行数据库查

  • 刷洛谷题单【数据结构2-1】2022-07-26 05:31:53

    P1090 合并果子 题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 \(n-1\) 次合并之后, 就只剩下一堆了

  • 数据结构与算法--希尔排序2022-07-26 00:34:44

    简介 希尔排序是插入排序的一种,又称“缩小增量排序”,是插入排序算法的一种更高效的改进版本 排序图解 从图中可以看出每一趟排序中都分成 gap 组,每组都有 gap + 1 个元素,对每一组中的 arr[j] 和 arr[j - gap] 进行比较,如果 arr[j] < arr[j - gap] 则相互交换值 gap 初始值为原数

  • 算法与数据结构基础-对数器2022-07-25 21:02:44

    我们在测试算法的时候不是总有完整的测试数据,但是我们大部分可以使用暴力去实现,对数器的含义在于使用相对可靠的暴力算法,使用很多次随机测试,测试其算法输出结果是否相同,多次测试结果相同我们认为待测试算法是可靠的。 package sort; import java.util.Arrays; import java.util.

  • java数据结构分析-红黑树2022-07-25 20:37:31

    红黑树的特性(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL 或NULL)的叶子节点! ](4)如果一个节点是红色的,则它的子节点必须是黑色的。(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。左旋对 x 进

  • java数据结构分析-B-TREE2022-07-25 20:35:36

    B-tree 又叫平衡多路查找树。一棵 m 阶的 B-tree (m 叉树)的特性如下(其中 ceil(x)是一个取上限的函数) 1. 树中每个结点至多有 m 个孩子;2. 除根结点和叶子结点外,其它每个结点至少有有 ceil(m / 2)个孩子;3. 若根结点不是叶子结点,则至少有 2 个孩子(特殊情况:没有孩子

  • java数据结构分析-位图2022-07-25 20:35:05

    位图的原理就是用一个 bit 来标识一个数字是否存在,采用一个 bit 来存储一个数据,所以这样可以大大的节省空间。 bitmap 是很常用的数据结构,比如用于 Bloom Filter 中;用于无重复整数的排序等等。 bitmap 通常基于数组来实现,数组中每个元素可以看成是一系列二进制数,所有元

  • java数据结构分析-栈(stack)2022-07-25 20:04:13

    栈( stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶(top)。它是后进先出(LIFO)的。对栈的基本操作只有 push(进栈)和 pop(出栈)两种,前者相当于插入,后者相当于删除最后的元素。  

  • java数据结构分析-队列(queue)2022-07-25 20:00:06

    队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。  

  • 数据结构与算法2022-07-25 12:36:51

    数据结构和算法(第二节课) 插入上一节课概念小节 抽象数据类型(ADT) 抽象数据类型{数据对象,数据关系,基本操作} 其中基本操作又包括:初始条件和操作结果 抽象数据类型的表述与实现 抽象数据类型可以通过固有的数据类型(整型、实型、字符型)来表示和实现 例如定义一个抽象数据类型“复数

  • 数据结构与算法--选择排序2022-07-24 22:35:17

    排序图解 从图中可以看出,每一趟排序都把最小(或最大)的元素,放在前一个已排好序的最小(或最大)的元素的后面 需要排序的趟次 = 数组长度 - 1 排序原理 遍历元素找到一个最小(或最大)的元素,把它放在第一个位置,然后再从剩余元素中找到最小(或最大)的元素,把它放在第二位置,依次类推,最后完成

  • 数据结构中AOE图的中一些概念的解释及求法:2022-07-24 18:02:44

    引用网址:https://blog.csdn.net/kongge123456/article/details/103254988 1、最早发生时间:从前往后,前驱结点到当前结点所需时间,取最大值; 2、最迟发生时间:从后往前,后继结点的最迟时间减去边权的值,取最小值; 结束节点的最早发生时间和最迟发生时间相同。 3、关键路径:最早发生时间和最

  • 常见的数据结构2022-07-24 10:33:54

    1. 栈数据结构的执行特点   后进先出, 先进后出     2. 队列   先进先出,后进后出   入队列:数据从后端进入队列模型的过程。   出队列:数据从前段离开队列模型的过程。         3. 常见数据结构之数组    查询速度快:查询数据通过地址值和索引定位,查询任意数据耗时相同(

  • 数据结构2022-07-24 09:02:06

    平衡树 我们需要维护一种数据结构,支持以下操作:插入值,删除值,查询数在集合中的排名,查询排名为 \(k\) 的数,求某个数的前驱与后继。 我们可以用二叉搜索树维护,但是可以被卡成 \(O(n)\) ,那么我们要用到另外一种数据结构,即平衡树来维护这些操作。 平衡树种类较多,这里仅介绍其中的Splay、

  • 基础数据结构2022-07-24 00:00:58

    基础数据结构介绍 栈 \(luoguB3614\) 概念 一种先进后出的数据结构 实现方法 手写栈(用数组模拟) int st[N];//模拟栈 int idx;//栈中元素数量 st[++idx]=x;//压栈 return st[idx];//取栈顶元素 if(idx) idx--;//弹出栈顶元素 idx=0;//清空栈 STL库 #include <stack>//栈

  • 数据结构与算法--时间复杂度和空间复杂度2022-07-23 23:35:40

    时间复杂度 要计算算法时间耗费情况,首先得度量算法的执行时间,那么如何度量呢? 事后分析估算方法 比较容易想到的方法就是把算法执行若干次,用计算机计时。这种统计方法主要是通过设计好的测试程序和测试数据,利用计算机计时器对不同的算法编制的程序的运行时间进行比较,从而确定算法

  • 数据结构学习代码实践01(顺序表的建立)(C语言)2022-07-23 23:00:55

    #include<stdio.h>#include<stdlib.h>//定义一个顺序表 : //存储结构:其逻辑上相邻,其物理上也相邻 //特点:1、可以随机访问 2、存储密度高 3、拓展内容不易 4、插入、删除不方便 //两种实现方式: 一种是静态(数组),另一种是动态(指针)//第一种静态(数组)//#define MaxSize 10 //定义最大长

  • 数据结构 _ ST表 | RMQ 问题2022-07-23 19:34:37

    基本概念 RMQ问题 RMQ英文是Range Maximum(Minimum) Query, 翻译就是区间求最值的意思。 ST表(Sparse Table,稀疏表) 是一种简单的数据结构,基于 倍增 思想,主要用来解决RMQ问题。 不支持修改操作 实现 复杂度: 预处理:\(O(n \log n)\) 每次查询:\(O(1)\) 预处理 预处理复杂度: \(O(n \log n

  • 刷洛谷题单【数据结构1-3】2022-07-23 01:31:06

    P1551 亲戚 题目描述 规定:\(x\) 和 \(y\) 是亲戚,\(y\) 和 \(z\) 是亲戚,那么 \(x\) 和 \(z\) 也是亲戚。如果 \(x\),\(y\) 是亲戚,那么 \(x\) 的亲戚都是 \(y\) 的亲戚,\(y\) 的亲戚也都是 \(x\) 的亲戚。第一行:三个整数 \(n,m,p\),(\(n,m,p \le 5000\)),分别表示有 \(n\) 个人,\(m\) 个亲

  • 常见数据结构及操作2022-07-20 21:02:17

    (一)字符串类型数据常用操作: String底层结构是动态字符串,可修改指定位置数据,通过预分配冗余空间减少内存的频繁分配,实际分配的空间capacity一般要高于实际字符串长度len。当字符串长度小于1M时,扩容都是加倍现有的空间,如果超过1M,扩容时一次只会多扩1M的空间。字符串最大长度为512M(512

  • 数据结构之二叉树顺序存储2022-07-20 17:01:15

    //二叉树顺序存储 不存下标0#include<stdio.h>#include<math.h> #define ElemType int#define MaxSize 20typedef struct SqBinTree{ ElemType data; int isEmpty;//我们需要一个东西来判断节点是不是空的}SqBinTree; void initTree(SqBinTree BinTree[]){ for(int i=0;i

  • 线性数据结构2022-07-20 12:00:06

    线性表线性表(简称表),是一种抽象的数学概念,是一组元素的序列的抽象,它由有穷个元素组成(0个或任意个)顺序表:使用一大块连续的内存顺序存储表中的元素,这样实现的表称为顺序表,或称连续表在顺序表中,元素的关系使用顺序表的存储顺序自然地表示链接表:在存储空间中将分散存储的元素链接起来,这

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有