• 数据结构与算法 - 栈和队列

    时间:2024-01-25 11:36:35

    栈(stack)先进后出,删除与加入均在栈顶操作 栈也称为堆栈,是一种线性表。堆栈的特性: 最先放入堆栈中的内容最后被拿出来,最后放入堆栈中的内容最先被拿出...

  • 数据结构与算法 - 线性表

    时间:2024-01-25 11:19:15

    什么是数据结构?什么是数据结构?什么是算法?♦ ♦ 讲的还是数据之间的关系,简单地说,数据结构是以某种特定的布局方式存储数据的容器。这种“布局方式”决定了数...

  • 数据结构与算法(一):带你了解时间复杂度和空间复杂度到底是什么?

    时间:2024-01-24 22:19:13

    1. 前言算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间...

  • python算法与数据结构-双向链表(40)

    时间:2024-01-24 22:12:05

    一、双向链表的介绍一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。上图是双向链表的结构图,即通过上一个节点可以找到下一个,通过下一个也可以找到上一个节点。二、双向链表插...

  • python算法与数据结构-链表(37)

    时间:2024-01-24 21:45:39

    一、顺序表1、顺序表介绍顺序表是最简单的一种线性结构,逻辑上相邻的数据在计算机内的存储位置也是相邻的,可以快速定位第几个元素,中间不允许有空,所以插入、删除时需要移动大量元素。顺序表可以分配一段连续的存储空间Maxsize,用elem记录基地址,用length记录实际的元素个数,即顺序表的长度, 上...

  • python算法与数据结构-希尔排序(35)

    时间:2024-01-24 21:33:57

    一、希尔排序的介绍希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的记录越来越多,当增量减至1时,整个文件恰被分成...

  • 【算法与数据结构】1049、LeetCode 最后一块石头的重量 II-三、完整代码

    时间:2024-01-24 19:03:47

    # include <iostream># include <vector># include <numeric># include <algorithm>using namespace std;class Solution {public: ...

  • 读后感:数据结构与算法JavaScript描述

    时间:2024-01-24 10:02:07

    本书看完,对常见的数据结构与算法从概念上有了更深入的理解。书中关于数组、栈和队列、链表、字典、散列、集合、二叉树、图、排序、检索、动态规划、贪心算法都有详细的介绍。算是一本不错的学习书籍。栈和队列:都可以通过数组来模拟。栈的规则是先进后出,队列的规则是先进先出。链表:有双向与单向链表之分,默认有一个...

  • 数据结构与算法(C/C++版)【栈与队列】

    时间:2024-01-23 18:20:47

    第三章《栈与队列》(一)栈简介  栈(Stack):只允许在一端进行插入或删除操作的线性表。首先栈是一种线性表,但是限定这种线性表只能在某一端进行插入和删除操作栈顶(top):线性表允许进行插入和删除的那一端。(开口的那一端)栈底(bottom):固定的,不允许进行插入和删除的另一端。(封死的那一端...

  • 数据结构与算法(C/C++版)【树与二叉树】

    时间:2024-01-23 17:43:57

    第六章《树与二叉树》树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。结点: A、B、C等,结点不仅包含数据元素,而且包含指向子树的分支。例如,A结点不仅包含数据元素A,而且包含3个指向子树的指针。结点的度: 结点拥有的子树个数或者分支的个数。例如,A结点有3棵子树,所以A结点...

  • 【算法与数据结构】Java实现查找与排序-第一部分:查找算法

    时间:2024-01-23 13:24:48

    二分查找 也叫做折半查找,属于有序查找算法。 前提条件:数组数据必须有序,从小到大,或者从大到小都是可以的。 如果是无序的,也可以先进行排序。 但是排序之后,会改变原有数据的顺序,查找出来元素位置跟原来的元素可能是不一样的,所以排序之后再查找只能判断当前数据是否在容器当中,返回的索引无实...

  • 数据结构与算法(十二):八大经典排序算法再回顾

    时间:2024-01-22 19:28:50

    文章出自汪磊的博客,未经允许不得转载一、排序的理解提到排序大部分同学肯定第一时间想到int数组的排序,简单啊,所谓排序不就是将int数组按照从大到小或者从小到大排序...

  • 「算法与数据结构」从入门到进阶吐血整理推荐书单

    时间:2024-01-22 18:33:52

     笔者正在学算法,从一个算法初学者的角度推荐一下「算法与数据结构」从入门到进阶的书单。一.入门系列这些书籍通过图片、打比方等通俗易懂的方法来讲述,让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现,但是看过以下这些书对于之后实现算法打下坚实的思维基础。很适合在闲...

  • 数据结构与算法(C#)入门 --- 线性表

    时间:2024-01-14 19:20:53

    线性表:线性表是最简单,最基本,最常用的数据结构。线性表中的数据元素之间存在一对一的关系。即:除了第一个元素,其他元素前面有且只有一个元素;除了最后一个元素,其他元素后面有且只有一个元素。生活中的例子:糖葫芦。(图片来自网络,侵删)分类:根据数据存储结构的不同,大体上可以分为:顺序表,链式表。顺序表...

  • 数据结构与算法—Trie树

    时间:2024-01-12 10:35:33

    Trie,又经常叫前缀树,字典树等等。它有很多变种,如后缀树,Radix Tree/Trie,PATRICIA tree,以及bitwise版本的crit-bit tree。当然很多名字的意义其实有交叉。Trie树是一种非常重要的数据结构,它在信息检索,字符串匹配等领域有广泛的应用,同时,它也是很多...

  • 算法与数据结构(一) 线性表的顺序存储与链式存储(Swift版)

    时间:2024-01-10 15:12:52

    温故而知新,在接下来的几篇博客中,将会系统的对数据结构的相关内容进行回顾并总结。数据结构乃编程的基础呢,还是要不时拿出来翻一翻回顾一下。当然数据结构相关博客中我们以Swift语言来实现。因为Swift语言是面向对象语言,所以在相关示例实现的时候与之前在大学学数据结构时C语言的实现有些出入,不过数据结...

  • 算法与数据结构(十三) 冒泡排序、插入排序、希尔排序、选择排序(Swift3.0版)

    时间:2024-01-07 22:47:38

    本篇博客中的代码实现依然采用Swift3.0来实现。在前几篇博客连续的介绍了关于查找的相关内容, 大约包括线性数据结构的顺序查找、折半查找、插值查找、Fibonacci查找,还包括数结构的二叉排序树以及平衡二叉树的构建与查找,然后还聊了哈希表的构建与查找。接下来的几篇博客中我们就集中的聊一下常见的集...

  • JavaScript 版数据结构与算法(三)链表

    时间:2024-01-03 18:15:36

    今天,我们要讲的是数据结构与算法中的链表。链表简介链表是什么?链表是一种动态的数据结构,这意味着我们可以任意增删元素,它会按需扩容。为何要使用链表?下面列举一些链表的用途:因为数组的存储有缺陷:增删元素时往往需要移动元素。而链表在内存中的放置并不是连续的,元素通过 next 属性指向下个元素,所以链...

  • Hark的数据结构与算法练习之Bogo排序

    时间:2024-01-02 11:47:35

    算法说明Bogo排序是交换排序的一种,它是一种随机排序,也是一种没有使用意义的排序,同样也是一种我觉得很好玩的排序。举个形象的例子,你手头有一副乱序的扑克牌,然后往天上不停的扔,那么有一定机率会变成有序的。哈哈,就是这样。看一下代码大家就知道了。代码使用的是javapackage hark.sort...

  • 指针与数据结构算法_链表(C语言)

    时间:2023-12-30 17:51:03

    一.变量:声明一个变量系统是没有给这个变量分配内存空间的:例:int j;//编译的时候是没有分配内存空间的int i=;//计算机在编译的时候就会给这个i分配4个字节的内存空间二.malloc动态分配内存地址:回想一下:我们在程序中存储一个整数10;除了使用int a;在内存中申请一块区域来存储,...