算法与数据结构
文章平均质量分 95
<但愿.
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法与数据结构——排序算法大全
本文系统介绍了常见排序算法及其特性。首先阐明排序的基本概念和应用场景,然后详细讲解了插入排序(直接插入和希尔排序)、选择排序(直接选择和堆排序)、交换排序(冒泡和快速排序)、归并排序以及非比较排序(计数排序)等算法。重点分析了各算法的核心思想、代码实现和时间复杂度,其中希尔排序通过预排序优化效率,快速排序采用递归/非递归版本,归并排序基于分治策略。文章最后对比了各算法的复杂度及稳定性(如相同元素相对顺序是否改变),指出快速排序平均O(nlogn)但最坏O(n²),而归并排序稳定保持O(nlogn),计数排序原创 2025-10-12 14:11:35 · 985 阅读 · 0 评论 -
算法与数据结构【树和⼆叉树】
本文介绍了树和二叉树的基本概念与结构。主要内容包括:1)树的层次结构、相关术语(如父节点、子节点、度、高度等)及其表示方法;2)二叉树的定义、特点(有序、度≤2)和分类(满二叉树、完全二叉树);3)二叉树的性质,如第i层最多2^(i-1)个节点、深度h的树最多2^h-1个节点等。文章还提到树形结构在文件系统中的应用,并指出满二叉树是完全二叉树的特例。原创 2025-09-12 19:55:35 · 1073 阅读 · 0 评论 -
数据结构【堆(⼆叉树顺序结构)和⼆叉树的链式结构】
对于Top-K问题,能想到的最简单直接的⽅式就是排序,但是:如果数据量⾮常⼤,排序就不太可取了(可能数据都不能⼀下⼦全部加载到内存中)。2)⽤剩余的N-K个元素依次与堆顶元素来⽐较,不满⾜则替换堆顶元素将剩余N-K个元素依次与堆顶元素⽐完之后,堆中剩余的K个元素就是所求的前K个最⼩或者最⼤的元素。这里一个重要的问题,怎么建堆(建空间多大的堆)是有多少个数据就建多少个数据的总空间大小的堆吗?TOP-K问题:即求数据结合中前K个最⼤的元素或者最⼩的元素,⼀般情况下数据量都⽐较⼤。2.2.1前中后序遍历。原创 2025-09-20 21:48:06 · 1098 阅读 · 0 评论 -
每日精讲:有效的括号、⽤队列实现栈、⽤栈实现队列
本文分享了三个数据结构相关的算法题解:1.有效的括号(LeetCode20)-使用栈结构匹配括号,处理特殊情况如右括号开头和奇数个括号;2.用队列实现栈(LeetCode225)-通过两个队列的配合实现栈的先进后出特性;3.用栈实现队列(LeetCode232)-利用入栈和出栈两个栈实现队列的先进先出特性。每道题都详细分析了解决思路,并提供了代码实现方法。文章最后提供了博主的技术专栏信息。原创 2025-04-10 03:53:23 · 895 阅读 · 1 评论 -
线性表之链表一
目录一 链表1概念:2结构:2.1结点3链表的性质4链表结构的实现5 链表的分类5.1单向/双向带头/不带头/循环/不循环分别指什么二 单链表(不带头单向不循环链表)1单链表结构:2手动实现单链表3单链表中涉及到的方法:三 双向链表(带头双向循环链表)1结构2实现双向链表及其涉及的操作四顺序表与链表的分析。原创 2025-03-04 02:17:28 · 812 阅读 · 0 评论 -
线性表之顺序表
目录一 线性表1概念:2分类3特点二 顺序表1概念2结构3分类4静态线性表(4.1结构4.2静态顺序表缺陷5 动态顺序表(利用动态内存管理实现内存的变化)5.1结构【因为动态顺序表的空间是变化的所以这里相当于静态顺序表多了一个用于存储空间大小的变量】5.2动态顺序表中涉及到的方法:【初始化和销毁头/部插⼊删除/ 尾部插⼊删除///指定位置之前插⼊删除/打印数据】原创 2025-02-16 21:44:43 · 915 阅读 · 0 评论 -
算法与数据结构——复杂度
数据结构是计算机存储、组织数据的⽅式数据增加、删除数据、查找数据、改写数据),指相互之间存在⼀种或多种特定关系的数据元素的集合。因为没有⼀种单⼀的数据结构对所有⽤途都有⽤(即现时中我们可能遇到多种问题不同的问题适合不同的数据结构解决),所以我们要学各式各样的数据结构,如:线性表、树、图、哈希等。原创 2025-01-16 04:03:15 · 1320 阅读 · 0 评论
分享