数据结构
-
数据结构与算法–希尔排序
简介 希尔排序是插入排序的一种,又称“缩小增量排序”,是插入排序算法的一种更高效的改进版本 排序图解 从图中可以看出每一趟排序中都分成 gap 组,每组都有 gap + 1 个元素…
-
算法与数据结构基础-对数器
我们在测试算法的时候不是总有完整的测试数据,但是我们大部分可以使用暴力去实现,对数器的含义在于使用相对可靠的暴力算法,使用很多次随机测试,测试其算法输出结果是否相同,多次测试结果相…
-
java数据结构分析-红黑树
红黑树的特性(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL 或NULL)的叶子节点! ](4…
-
java数据结构分析-B-TREE
B-tree 又叫平衡多路查找树。一棵 m 阶的 B-tree (m 叉树)的特性如下(其中 ceil(x)是一个取上限的函数) 1. 树中每个结点至多有 m 个孩子;2. 除根结…
-
java数据结构分析-位图
位图的原理就是用一个 bit 来标识一个数字是否存在,采用一个 bit 来存储一个数据,所以这样可以大大的节省空间。 bitmap 是很常用的数据结构,比如用于 Bloom Fil…
-
java数据结构分析-栈(stack)
栈( stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶(top)。它是后进先出(LIFO)的。对栈的基本操作只有 push(进栈)和 pop(出栈)…
-
java数据结构分析-队列(queue)
队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为…
-
数据结构与算法–选择排序
排序图解 从图中可以看出,每一趟排序都把最小(或最大)的元素,放在前一个已排好序的最小(或最大)的元素的后面 需要排序的趟次 = 数组长度 – 1 排序原理 遍历元素找…
-
数据结构与算法–时间复杂度和空间复杂度
时间复杂度 要计算算法时间耗费情况,首先得度量算法的执行时间,那么如何度量呢? 事后分析估算方法 比较容易想到的方法就是把算法执行若干次,用计算机计时。这种统计方法主要是通过设计好…
-
数据结构学习代码实践01(顺序表的建立)(C语言)
#include<stdio.h>#include<stdlib.h>//定义一个顺序表 : //存储结构:其逻辑上相邻,其物理上也相邻 //特点:1、可以…