数据结构与算法

数据结构与算法知识点总结(4)各类排序算法

1. 插入排序 1.1 直接插入排序 直接插入排序的特点: 时空效率: 时间复杂度为O(n^2),空间复杂度为O(1)。最好情况下是元素基本有序,此时每插入一个元素,只需比较几次而无需移动,时间复杂度为O(n) 稳定性: 保证相等元素的插入相对位置不会变化,稳定排序 void insertion_s ... »

数据结构与算法知识点总结(1)数组与链表

1. 动态数组 它的基本思路是使用如malloc/free等内存分配函数得到一个指向一大块内存的指针,以数组的方式引用这块内存或者直接调用动态数组的接口,根据其内部的实现机制自行扩充空间,动态增长并能快速地清空数组,对数据进行排序和遍历。 它的数据结构定义如下: typedef struct { v ... »

数据结构笔记——树与二叉树

好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star ⭐⭐⭐⭐⭐转载请注明出处:https://blog.csdn.net/weixin_43461520/article/details/124003408 5. ... »

二维数组与稀疏数组的互转

二维数组与稀疏数组的互转 转换思路 二维数组转稀疏数组的思路: 遍历原始的二维数组,得到有效数据的个数sum,根据sum就可以创建稀疏数组sparseArr int[sum+1][3] 将二维数组的有效数据存入到稀疏数组 稀疏数组转原始的二维数组的思路: 先读取稀疏数组的第一行,根据第一行的数据,创 ... »

H-scholar

数据结构笔记——栈和队列

好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star ⭐⭐⭐⭐⭐转载请注明出处!⭐⭐⭐⭐⭐ 链接:https://blog.csdn.net/weixin_43461520/article/details/123 ... »

【数据结构与算法】手撕红黑树

红黑树 定义 动机: 二叉查找树查找、插入、删除最坏情况时间复杂度可能退化为 O(n)。 AVL 树很好的限制了数的高度为 O(logn),插入、删除、查找的最坏时间复杂度均为 O(logn);但删除操作最多需要做 O(logn) 次旋转。 红黑树是具有如下特点的二叉查找树: 每个结点是红色或黑色的 ... »

【数据结构与算法】手撕平衡二叉树

平衡二叉树 定义 动机:二叉查找树的操作实践复杂度由树高度决定,所以希望控制树高,左右子树尽可能平衡。 平衡二叉树(AVL树):称一棵二叉查找树为高度平衡树,当且仅当或由单一外结点组成,或由两个子树形 Ta 和 Tb 组成,并且满足: |h(Ta) - h(Tb)| ⇐ 1,其中 h(T) 表示树 ... »

【算法】算法与数据结构的关系

博客推行版本更新,成果积累制度,已经写过的博客还会再次更新,不断地琢磨,高质量高数量都是要追求的,工匠精神是学习必不可少的精神。因此,大家有何建议欢迎在评论区踊跃发言,你们的支持是我最大的动力,你们敢投,我就敢肝 ... »

数据结构与算法(十三)——红黑树2

三、删除 1、介绍 红黑树的删除类似于排序二叉树,排序二叉树主要分为三种情况: (1)删除没有左孩子且没有右孩子的结点。即:度为0。 (2)删除只有左(右)孩子的结点。即:度为1。 (3)删除有左孩子且有右孩子的结点。即:度为2。 由于红黑树还有颜色的区分,所以在上述三种情况的基础上加上颜色,就是六 ... »

在数据结构与算法中 传值方式(C语言)

本文是因为自己确确实实遇到了&引用的问题,导致自己对于C语言的理解与老师的想法发生了冲突,自己通过查阅视频和看CSDN作者文章https://blog.csdn.net/JayRoxis?type=blog 很感谢JayRoxis作者的文章 ... »

chzzg

数据结构与算法(十三)——红黑树1

一、概述 1、介绍 红黑树是一种自平衡的排序二叉树,常用于关联数组、字典,在各种语言的底层实现中被广泛应用,Java 的 TreeMap 和 TreeSet 就是基于红黑树实现的,在 JDK 8 的HashMap中也有应用。 红黑树是在排序二叉树的基础上定义的,且还要满足以下性质(重要):(请务必先 ... »

【数据结构与算法】Trie(前缀树)模板和例题

Trie 树的模板 Trie 树的简介 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。他的核心思想是空间换时间,空间消耗大但是插入和查询有着很优秀的时间复杂度。 Trie 树的定义 Trie树的键不是直接保 ... »

数据结构与算法----# 一、排序

一、排序 1、比较器Comparable Java中的比较器(排序) - 情陌人灬已不在 - 博客园 (cnblogs.com) Comparable和Comparator接口都是为了对类进行比较,众所周知,诸如Integer,double等基本数据类型,java可以对他们进行比较,而对于类的比较, ... »

常用数据结构算法 c++模板实现 - Rollen Holt

由于大三下学期了,快要找工作了,所以最近在复习一些学过的内容,以下是这几天写的数据结构里面的一些常用的算法,仅供参考。不过在平时做项目的时候,建议采用STL和Boost里面现成的东西,而不要自己去实现 »

rollenholt