数据结构与算法
文章平均质量分 60
数据结构与算法相关知识
是浩浩子
十年饮冰难凉热血
展开
-
数据结构与算法阶段总结(二)
1. 二叉树1.1 二叉树的遍历1. 先(根)序遍历操作过程:若二叉树为空,则什么都不做;否则,1)访问根节点;2)先序遍历左子树;3)先序遍历右子树。对应的递归算法如下:void preOrder(treeNode *T) { if(T!=NULL) { visit(T);//访问根节点 preOrder(T->left);//递归遍历左子树 preOrder(T->right);//递归遍历右子树}}2. 中(根)序遍历操作过程:若二叉树为空,则什么都原创 2022-03-17 22:24:05 · 386 阅读 · 0 评论 -
优化程序性能
注意一些在循环中可以用到的提升程序性能的方法,并且避免一些不必要的内存访问。#include<iostream>using namespace std;//实现一个功能:更新数组元素,更新值为此位置及前面元素之和。//方法1void test01(int *arr,int *sum,int len) { sum[0]=arr[0]; for(int i=1;i<len;i++) { sum[i]=sum[i-1]+arr[i]; }.原创 2022-01-23 22:46:34 · 317 阅读 · 0 评论 -
输出二叉树的所有叶子(List Leaves)
#include<iostream>using namespace std;//#define Null -1;#define Null -1//想法是这样的:采用层次遍历让所有结点都加入队列,不能包括空结点struct Node{ int left; int right;};int main(){ //建树 Node arr[10]; int N; int count=0; cin>>N; char原创 2021-12-07 19:39:07 · 1287 阅读 · 0 评论 -
出栈序列(Pop Sequence)
问题描述Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, …, N and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence of the stack. For example, if M is 5 and N is 7, we can原创 2021-12-02 19:50:32 · 3174 阅读 · 0 评论 -
三种方法求最大子列和
给定n个整数的序列{A1,A2…An},求函数f(i,j)=max{0,∑k=ijAk}f(i,j)=max\{0,\sum_{k=i}^jA_k\}f(i,j)=max{0,∑k=ijAk}的最大值。下图给出了方法二中递归求解最大子列和的过程。#include <iostream>using namespace std;//方法1:暴力遍历求解int maxSubseqSum1(int arr[], int len){ int sum = 0; int .原创 2021-11-29 21:02:35 · 235 阅读 · 0 评论 -
KMP算法原理
KMP算法原理KMP算法是一种字符串匹配算法,它是对朴素模式算法(暴力匹配)的改进。 我们先看朴素模式下是怎么进行字符串匹配的。假设我们有两个字符串,被匹配的的大串称为 主串,要匹配的小串称为模式串。模式串要和主串匹配,我们很容易想到一个双重循环下的暴力匹配方法。先从主串的第一个字符开始匹配,依次遍历模式串的字符,如果不匹配就从主串的第二个字符匹配。如果主串的长度为n,模式串的长度为m,显然这个算法的最坏时间复杂度为O(nm)O(nm)O(nm)。 这个方法一个最大的缺点就是没能从每次失败匹配中原创 2021-11-21 10:50:09 · 4196 阅读 · 0 评论 -
数据结构与算法阶段总结
【数据结构与算法阶段总结】前言学习一段时间数据结构后,感觉有点零乱,对线性表、栈和队列的基本概念基本熟悉,通过做一定数量的题目并加深理解,但面对新的问题时,仍然有种不知如何下手的感觉,或者花费时间太长。于是对近来所学进行总结,归纳其中的关键点,并通过具体问题说明把实际问题用算法描述,利用画图、伪码完善思路的过程。一、算法复杂度一种算法在保证其正确的前提下,其优劣主要取决于时间和空间复杂度。自己感觉这是最难的地方。有些算法其巧妙程度,让人看了后不禁woc,还能这样!这也是算法的魅力所在。这一点自认为对原创 2021-11-13 15:43:48 · 981 阅读 · 0 评论 -
2021-11-10
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-11-10 11:33:36 · 377 阅读 · 0 评论