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

数据结构与算法学习十二:希尔排序、快速排序(递归、好理解)、归并排序(递归、难理解)

前言 上节的三个排序算法:冒泡、选择、插入,较为简单,好理解,使用比较、交换的思想。但也都是基础。 这节的三个排序算法:希尔、快速【看注释比较容易理解思路】、归并,难理解,使用递归的思想。 这三个是难点,但也是重点。加油 一、希尔排序 1.1 简单插入排序存在的问题 我们看简单的插入排序可能存在的问题.数组 arr = {2,3,4,5,6,1} 这时需要插入的数 1(最小), 这样的...

数据结构与算法学习十二:希尔排序、快速排序(递归、好理解)、归并排序(递归、难理解)
文章 2024-10-16 来自:开发者社区

数据结构与算法学习九:学习递归。递归的经典实例:打印问题、阶乘问题、递归-迷宫问题、八皇后问题

前言 先说一下递归算法的重要性,后面的快速排序、归并排序都会用到递归。可见其重要性 这里学的时候,自我感觉有点难,逻辑有点混乱,可以先学习一遍,然后到了后面用到的时候,再来学习一遍。 一、递归 2.1 递归简单介绍 简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量。递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。 2.2 重要规则 执行一个方法时,就创建一个新的受...

数据结构与算法学习九:学习递归。递归的经典实例:打印问题、阶乘问题、递归-迷宫问题、八皇后问题
文章 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、冒泡排序、二分查找、斐波那契数列递归)

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

算法编程

开发者社区在线编程频道官方技术圈。包含算法资源更新,周赛动态,每日一题互动。

+关注