随笔分类 - 数据结构与算法
摘要:参考文章:十大排序算法稳定性,复杂度分析
阅读全文
摘要:一,顺序栈的基本操作 同顺序表和链表一样,栈也是用来存储逻辑关系为 "一对一" 数据的线性存储结构,如图 1 所示。 图 1 栈存储结构示意图 从图 1 我们看到,栈存储结构与之前所学的线性存储结构有所差异,这缘于栈对数据 "存" 和 "取" 的过程有特殊的要求: 2,在栈中,无论是存数据还是取数据
阅读全文
摘要:原博主:https://www.jianshu.com/p/d730ae586cf3 1,希尔排序概述 希尔排序(shell Sort) 是插入排序的一种算法,是对直接插入排序的几个优化,也称缩小增量排序。 注意:1,希尔排序是非稳定性排序算法; 2,为了方便记忆算法,我习惯将其记作 “三层for循
阅读全文
摘要:它们都属于内部排序,也就是只考虑数据量较小仅需要使用内存的排序算法,他们之间关系如下: 1,直接插入排序算法概述: 插入排序的设计是 向有序的数组中快速插入一个新的元素 , 算法思想:把要排序的数组分为两部分,一部分是除去待插入元素的所有元素,一部分是待插入元素:排序序时先将第一部分排序完成,然后再
阅读全文
摘要:目前我们所学到的链表,无论是动态链表还是静态链表,表中各节点中都只包含一个指针(游标),且都统一指向直接后继节点,通常称这类链表为单向链表(或单链表)。 虽然使用单链表能 100% 解决逻辑关系为 "一对一" 数据的存储问题,但在解决某些特殊问题时,单链表并不是效率最优的存储结构。比如说,如果算法中
阅读全文
摘要:一,回忆链表 链表,别名链式存储结构或单链表,用于存储逻辑关系为 "一对一" 的数据。与顺序表不同,链表不限制数据的物理存储状态,换句话说,使用链表存储的数据元素,其物理存储位置是随机的。 例如,使用链表存储 {1,2,3},数据的物理存储状态如图 1 所示: 图 1 链表随机存储数据 我们看到,图
阅读全文
摘要:通过前面的学习知道,具有“一对一”逻辑关系的数据,最佳的存储方式是使用线性表。那么,什么是线性表呢? 线性表,全名为线性存储结构。使用线性表存储数据的方式可以这样理解,即“把所有数据用一根线儿串起来,再存储到物理空间中”。 采用线性表将其储存到物理空间中。 首先,用“一根线儿”把它们按照顺序“串”起
阅读全文
摘要:当你决定看这篇文章,就意味着系统学习数据结构的开始。本节,我们先来讲什么是数据结构。 参考: 图解Java常用数据结构 数据结构,直白地理解,就是研究数据的存储方式。 我们知道,数据存储只有一个目的,即为了方便后期对数据的再利用,就如同我们使用数组存储 {1,2,3,4,5} 是为了后期取得它们的加
阅读全文