Data Structure and Algorithm
文章平均质量分 55
Data Structure and Algorithm
AIT袁
这个作者很懒,什么都没留下…
展开
-
【正确版】Java编程实现如下场景:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数(排除其他文章的错误答案)
我看有的博主在统计字母时竟然(b[i]>=‘A’ && b[i]原创 2023-04-26 23:58:33 · 443 阅读 · 0 评论 -
数据结构与算法超级详细版再次更新
经过长时间的总结,把学习的知识串联起来可以帮助记忆。原创 2023-04-25 21:53:08 · 949 阅读 · 1 评论 -
数据结构的逻辑结构和物理结构
图中数组错了 数组是一种具体的存储数据的方式,它可以用来实现线性表,但不是只能用来表示线性表,还可以表示树,也可以表示图。 数组是用一段连续的内存存储,可以随机访问。 线性表用数组实现叫做顺序表,用链表实现没有特殊的名字。 树用数组实现没有特殊的名字,用链表实现没有特殊的名字。 1.逻辑结构: 逻辑结构分为四种类型:集合结构,线性结构,树形结构,图形结构。 1.1 所谓集合结构: 表面意思,没有什么深刻意义,就是数据元素同属一个集合,单个数据元素之间没有任何关系。如下图所示。 1.2 线性结构: 类似于线.原创 2020-07-06 22:00:33 · 3522 阅读 · 0 评论 -
KMP算法理解(更新)
KMP算法是一个非常经典的字符串匹配的算法,它讲的是,我们给定两个字符串str1与str2,长度分别问N和M,实现一个算法,如果字符串str1,包含str2,则返回str2在str1中的开始位置,不包含则返回-1。题意很容易理解,如下图:当str1与str2为abcdabce与abce的时候,二者匹配,返回abce在str1中开始位置的下标3,当str1与str2为abcdabce与abcf的时候,二者不存在包含关系,返回-1。大多数人看到这个题目,第一个想到的方法肯定是暴力比对,将str2从str1的第一原创 2020-06-20 18:13:43 · 168 阅读 · 0 评论 -
线性表
顺序表与链表时间复杂度比较 名称 访问 查找 插入 删除 数组 O(1) O(n) O(n) O(n) 有序数组 O(1) O(logN) O(n) O(n) 链表 O(n) O(n) O(1) O(1) 有序链表 O(n) O(n) O(n) O(n) 1、向一个有序数组中插入一个数的时间复杂度是多少? 第一步:确定插入的位置。采用遍历查找的时间复杂度是O(n),采用二分查找的时间复杂度是O(log2n)。 第二步:插入元素。在原创 2020-06-15 18:11:15 · 124 阅读 · 0 评论 -
线性表
1 线性表定义 线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。 线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(注意,这句话只适用大部分线性表,而不是全部。比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储,但是把最后一个数据...原创 2020-04-26 10:40:55 · 102 阅读 · 0 评论 -
数据结构总结(持续更新中)
1 数据 数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。 2 数据结构 逻辑结构:集合结构、线性结构、树形结构、图形结构。 物理结构: 顺序储存结构、链接储存结构。 3 数据类型 数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。 数据类型是按照...原创 2020-04-20 12:45:26 · 200 阅读 · 0 评论