数据结构与算法
JUJY11
这个作者很懒,什么都没留下…
展开
-
树形结构---树
一、树的基本概念 树是数据元素之间具有层次关系的非线性结构,是由n个节点构成的有限集合,结点数为0的树叫空树。树必须满足以下条件。 有且只有一个被称为根的节点 2.其余节点可分为m个互不相交的有限集合,每个集合又构成一棵树,叫根节点子树。 与线性结构不同,树中的数据结构元素具有一对多的逻辑关系,除根节点以外,每个数据元素可以有多个后继但有且仅有一个前驱,反映了数据元素之间的层次关系。树是递归定义的,节点是树的基本单位,若干个节点组成一棵树。 二、树的术语 术语 释义 结点...原创 2022-04-30 19:03:31 · 425 阅读 · 0 评论 -
反转字符串中的单词
问题背景: 给定一个字符串,需要反转字符串中每一个单词的字符顺序,同时仍保留空格和单词的初始顺序。 方法概述: 从头到尾遍历字符串中的内容,每次遍历一个单词,单词里面的每个字母均进行计数,直到遇到空格计数暂停。 将每个单词的字母进行反转,将逆序的单词增加到新的字符串中。 每反转一个单词后,遇到空格,计数增加。 继续从第1步开始执行遍历,直至遍历完毕。 例题: 给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例1: 输入:s = "Let'.原创 2022-04-24 17:29:31 · 1638 阅读 · 0 评论 -
二分查找法
***问题背景:在有序数组nums中寻找目标值target,对于特定的下标i,比较nums[i]和target的大小。 如果nums[i]=target,则下标i为所需要查找的下标。 如何nums[i]>target,则target只可能在下标i的左侧。 如果nums[i]<target,则target只可能在下标i的右侧。 ***基于上述可以使用二分法寻找目标值。其中二分法的时间复杂度为O(log n),空间复杂度为O(1)。 二分查找的做法: 定义查找范围 [left,right]原创 2022-04-21 14:21:39 · 1353 阅读 · 0 评论 -
数据结构与算法
***评估算法优劣的核心指标: 1.时间复杂度(流程决定) 2.额外空间复杂度(流程决定) 3.常数项时间(实现细节决定) ***认识时间复杂度 常数时间的操作:如果一个操作的执行时间不以具体的样本量为转移,每次执行的时间是固定时间。称这样的操作为常数时间的操作。 ****常见的常数操作: 常见的算术操作(+、-、*、/、%等) 常见的位运算(>>、>>>、<<、|、&、^等) 赋值、比较、自增、自减操作等。 数组寻址操作。 remark1:原创 2022-04-07 17:24:41 · 542 阅读 · 0 评论