文章 2024-06-06 来自:开发者社区

数据结构和算法学习记录——认识二叉搜索树及二叉搜索树的查找操作(递归以及迭代实现-查找操作、查找最大和最小元素)

二叉搜索树 二叉搜索树(BST,Binary Search Tree),也称二叉排序树或二叉查找树。 一颗二叉树,可以为空;如果不为空,满足一下性质: 1.非空左子树的所有键值小于其根节点的键值。 2.非空右子树的所有键值大于其根节点的键值。 3.左、右子树都是二叉搜索树。 ...

数据结构和算法学习记录——认识二叉搜索树及二叉搜索树的查找操作(递归以及迭代实现-查找操作、查找最大和最小元素)
文章 2024-06-06 来自:开发者社区

数据结构和算法学习记录——二叉树的存储结构&二叉树的递归遍历(顺序存储结构、链表存储结构、先序中序后序递归遍历)

设想一下二叉树要用什么样的方式来存储,一种是用数组,一种是用链表。 顺序存储结构 用数组,也就是用顺序存储结构,比较合适的就是用于完全二叉树: 按从上至下,从左到右顺序存储n个节点的完全二叉树。 ...

数据结构和算法学习记录——二叉树的存储结构&二叉树的递归遍历(顺序存储结构、链表存储结构、先序中序后序递归遍历)
文章 2024-06-06 来自:开发者社区

数据结构和算法学习记录——空间复杂度的计算(冒泡排序、阶乘递归、斐波那契数列递归、常见复杂度对比、栈帧、栈溢出)

一、简单介绍 空间复杂度也是一个数学函数表达式,是对一个算法在运行过程中 临时额外占用存储空间大小的量度。 空间复杂度不是不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是额外创建的变量的个数。 空间复杂度的计算规则基本跟时间复杂度类似,也使用   大O渐进表示法  ...

数据结构和算法学习记录——空间复杂度的计算(冒泡排序、阶乘递归、斐波那契数列递归、常见复杂度对比、栈帧、栈溢出)
文章 2024-06-06 来自:开发者社区

数据结构和算法学习记录——时间复杂度的计算(嵌套循环、大O的渐进表示法、双重循环、常数循环、strchr、冒泡排序、二分查找、斐波那契数列递归)

一、嵌套循环的时间复杂度 1-1 //计算func1中++count语句总共执行了多少次? void func1(int N) { int count = 0; for (int i = 0; i < N; i++) for (int j ...

数据结构和算法学习记录——时间复杂度的计算(嵌套循环、大O的渐进表示法、双重循环、常数循环、strchr、冒泡排序、二分查找、斐波那契数列递归)
文章 2024-03-16 来自:开发者社区

【数据结构算法(一)】递归篇(常见实例讲解)

键盘敲烂,年薪30万 ⭐本篇讲解实例: 斐波那契、兔子问题、猴子吃桃问题、跳台阶问题、汉诺塔、杨辉三角 ⭐用到的递归思想: 无记忆递归、记忆递归(重点掌握) 一、斐波那契: ...

【数据结构算法(一)】递归篇(常见实例讲解)
文章 2024-03-07 来自:开发者社区

【数据结构与算法】【小白也能学的数据结构与算法】递归 分治 迭代 动态规划 无从下手?一文通!!!

递归 了解递归:从简单到复杂 递归是一种强大的问题解决方法,通过将问题分解为子问题并通过调用自身来解决。在本篇博客中,我们将深入了解递归的概念和基本原理,并使用C语言实现一些示例代码。 递归的概念和基本原理 递归是一种通过调用自身来解决问题的方法。...

文章 2024-01-17 来自:开发者社区

数据结构和算法面试题:实现一个函数,将一棵二叉树转换为它的镜像。(递归或者非递归实现)

数据结构和算法面试题:实现一个函数,将一棵二叉树转换为它的镜像。(递归或者非递归实现)简介:实现一个函数,将一棵二叉树转换为它的镜像。(递归或者非递归实现)该算法的实现思路如下:对于当前节点,交换其左右子树。递归地对该节点的左右子树进行镜像转换。下面是使用C++实现将一棵二叉树转换为它的镜像(非递归实现)的代码,并附带详细注释:#include <iostream> #include....

文章 2023-12-20 来自:开发者社区

Python 数据结构和算法:解释什么是递归,提供一个使用递归的例子。

递归是一种在解决问题时将问题分解成更小且与原问题具有相同结构的子问题的方法。在递归过程中,函数会调用自身来解决这些子问题。递归通常用于解决可以通过不断将问题分解为更小的子问题来解决的问题,直到达到基本情况(终止条件)。 递归包含两个主要部分: 基本情况(Base Case): 一个或多...

文章 2023-09-23 来自:开发者社区

【数据结构与算法篇】手撕八大排序算法之快排的非递归实现及递归版本优化(三路划分)

内容专栏: 《数据结构与算法篇》本文概括: 利用数据结构栈(Stack)来模拟递归,实现快排的非递归版本;递归版本测试OJ题时,有大量重复元素样例不能通过,导致性能下降,优化快速排序通过将数组划分为三个区域,可以更有效地处理重复元素。本文作者: 阿四啊发布时间:2023.8.28快速排序(非递归)1.为什么要学习非递归版本?前面我们使用了三个版本实现快速排序,但都是属于递归类型算法,函数调用会建....

【数据结构与算法篇】手撕八大排序算法之快排的非递归实现及递归版本优化(三路划分)
文章 2023-08-08 来自:开发者社区

[数据结构 -- 手撕排序算法第六篇] 递归实现快速排序(集霍尔版本,挖坑法,前后指针法为一篇的实现方法,很能打)2

5、前后指针版本5.1 实现思路我们规定排升序,排序数组名称为a,基准值 key。1.选出一个key,key可以是需要排序的数组中任意一个元素,我们依然选key为a[left];2.定义一个prev指针,和一个cur指针,初始化 prev 指向数组首部位置,cur 指向 prev 的下一个位置。cur先走,cur 找小于 key 的元素,找到之后停下来,让 prev++,然后交换 (a[cur]....

[数据结构 -- 手撕排序算法第六篇] 递归实现快速排序(集霍尔版本,挖坑法,前后指针法为一篇的实现方法,很能打)2

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

智能搜索推荐

智能推荐(Artificial Intelligence Recommendation,简称AIRec)基于阿里巴巴大数据和人工智能技术,以及在电商、内容、直播、社交等领域的业务沉淀,为企业开发者提供场景化推荐服务、全链路推荐系统开发平台、工程引擎组件库等多种形式服务,助力在线业务增长。

+关注