数据结构与算法

【学习笔记】【数据结构与算法篇】链表

什么是链表?是一种线性表,但不按线性存储,即内存不连续,链表在每一个节点里存到下一个节点的指针(Pointer),从而形成顺序关系。 > 数据结构的意思指的是,我们如何在计算机中存储及表示我们的数据 链表的第一个元素,称之为头节点。 如果链表的最后的一个元素指向了头节点,那么这个链表就成为了一个环。就像一条咬到自己尾巴的蛇。 我们用线性表存储我们的数据时,依然(同数组 [https://zgljl2012.com/xue-xi-bi-ji-shu-ju-jie-gou-yu-suan-fa-pian-shu-zu/])是需要 CRUD 四个操作: * 插入 * 更新 * 删除 * 查询 CRUB 操作分析 插入 比如说,我们要在

  • zgljl2012
2 min read
数据结构与算法

【学习笔记】【数据结构与算法篇】数组

什么是数组?由相同类型的元素(element)的集合所组成的数据结构,分配一块连续的内存来存储。利用元素的索引(index)可以计算出该元素对应的存储地址。 请注意: 1. 数组元素类型相同 2. 内存连续 3. 随机访问,也即直接访问 数据结构是用来存储数据的,我们的目的是将数据存储在数组中,所以需要对数组进行一些操作: 1. 插入 insert 2. 更新 update 3. 删除 delete 4. 查询 query 插入数据:插入数据时,

  • zgljl2012
1 min read
数据结构与算法

【学习笔记】【数据结构与算法篇】复杂度分析

复杂度分为两类:时间复杂度和空间复杂度 我们为什么需要复杂度:用来衡量执行一个算法时,数据规模与时间和空间的关系 那什么是复杂度?怎么定义?: > 时间复杂度:定性描述算法运行时间的函数 空间复杂度:对一个算法在运行过程中临时占用存储空间大小的量度 请注意,是定性描述。 表示方法: 用 big O 表示法表示,形如 O(n2) 时间复杂度量级: * 常数阶 O(1) * 对数阶 O(logn) * 线性阶 O(n) * 线性对数阶 O(

  • zgljl2012
2 min read
算法

【算法导论-学习笔记】以线性时间增长的排序——计数排序

计数排序是一种能够达到运行时间能够线性时间θ(n)的排序算法。在排序算法里算是最快的算法之一,当然,他有很强烈的前提。下面开始介绍一下计数排序(Counting Sort)。 算法思想 计数排序假设n个输入元素中的每一个都是介于0到k之间的整数,此处k为某个整数。这样可以用一个数组C[0..k]来记录待排序数组里元素的数量。当k=O(n)时,计数排序的运行时间为θ(n). > 注:关于C[0..k],用键值对描述的话,待排序元素是键,相同元素的个数是值。例:待排序数组<2,3 , 6,4 , 1 , 1 , 3 , 5 , 7> 一共9个元素,切每一个都处于0到7之间,

  • zgljl2012
4 min read
zgljl2012@gmail.com