• Java数据结构和算法(三)——冒泡、选择、插入排序算法

    时间:2024-01-23 19:21:18

    上一篇博客我们实现的数组结构是无序的,也就是纯粹按照插入顺序进行排列,那么如何进行元素排序,本篇博客我们介绍几种简单的排序算法。1、冒泡排序这个名词的由来很好理解,一般河水中的冒泡,水底刚冒出来的时候是比较小的,随着慢慢向水面浮起会逐渐增大,这物理规律我不作过多解释,大家只需要了解即可。冒泡算法的运...

  • 数据结构与算法(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算法,背包问题等,不要求会实现,但是看过以下这些书对于之后实现算法打下坚实的思维基础。很适合在闲...

  • 【学习总结】java数据结构和算法-第一章-内容介绍和授课方式

    时间:2024-01-16 21:45:36

    总目录链接【学习总结】尚硅谷2019java数据结构和算法github:javaDSA目录几个经典算法面试题算法和数据结构的重要性几个经典算法面试题字符串匹配暴力法:慢kmp算法:更符合汉诺塔分治算法八皇后问题回溯马踏棋盘问题DFS+贪心优化算法和数据结构的重要性END...

  • 数据结构与算法(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查找,还包括数结构的二叉排序树以及平衡二叉树的构建与查找,然后还聊了哈希表的构建与查找。接下来的几篇博客中我们就集中的聊一下常见的集...

  • 数据结构和算法 – 9.二叉树和二叉查找树

    时间:2024-01-05 09:27:48

     9.1.树的定义 9.2.二叉树人们把每个节点最多拥有不超过两个子节点的树定义为二叉树。由于限制子节点的数量为 2,人们可以为插入数据、删除数据、以及在二叉树中查找数据编写有效的程序了。在考虑一种更加特殊的二叉树——二叉查找树的时候,鉴别子节点是很重要的。二叉查找树是一种较小数据值存储在左节点内而...

  • 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;在内存中申请一块区域来存储,...

  • C语言数据结构----递归的应用(斐波拉契数列、汉诺塔、strlen的递归算法)

    时间:2023-12-29 14:56:48

    本节主要说了递归的设计和算法实现,以及递归的基本例程斐波拉契数列、strlen的递归解法、汉诺塔和全排列递归算法。一、递归的设计和实现1.递归从实质上是一种数学的解决问题的思维,是一种分而治之的思想。这个是常见的一种数学算法,其实它就是递归的本质。我们要求的是所有数的乘积,那么我们就先求出两个数的乘...

  • 算法与数据结构(二) 栈与队列的线性和链式表示(Swift版)

    时间:2023-12-29 13:40:59

    数据结构中的栈与队列还是经常使用的,栈与队列其实就是线性表的一种应用。因为线性队列分为顺序存储和链式存储,所以栈可以分为链栈和顺序栈,队列也可分为顺序队列和链队列。本篇博客其实就是《数据结构之线性表的顺序存储于链式存储(Swift面向对象版)》这篇博客的应用。本篇博客会分别给出队列的顺序和链式存储,...

  • 算法与数据结构(十四) 堆排序 (Swift 3.0版)

    时间:2023-12-26 16:03:05

    上篇博客主要讲了冒泡排序、插入排序、希尔排序以及选择排序。本篇博客就来讲一下堆排序(Heap Sort)。看到堆排序这个名字我们就应该知道这种排序方式的特点,就是利用堆来讲我们的序列进行排序。“堆”其实就是一种有着特定结构的完全二叉树,下方将会详细的介绍一下堆。本篇博客讲的就是堆排序,首先我们先对大...

  • 数据结构算法集---C++语言实现

    时间:2023-12-25 19:02:41

    //数据结构算法集---C++语言实现//各种类都使用模版设计,可以对各种数据类型操作(整形,字符,浮点)///////////////////////////// //// 堆栈数据结构 stack.h //// //////////////////////////// #include<i...

  • 数据结构算法C语言实现(二)---2.3线性表的链式表示和实现之单链表

    时间:2023-12-24 22:07:47

    一.简述【暂无】二.头文件 #ifndef _2_3_part1_H_ #define _2_3_part1_H_ //2_3_part1.h /** author:zhaoyu email:zhaoyu1995.com@gmail.com date:2016-6-4 note:realize my...