![](https://img-blog.csdnimg.cn/20210731071420645.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构(C/C++)
文章平均质量分 71
数据结构(C/C++)
风至意难平
将每日所学进行记录和总结,本身就是一种进步
展开
-
九大封神排序算法(更新中)
九大排序排序算法时间复杂度O(n**2)冒泡排序选择排序插入排序时间复杂度O(nlogn)希尔排序堆排序快速排序排序算法时间复杂度O(n**2)冒泡排序排序思想:一边比较一边向后两两交换,将最大值 / 最小值冒泡到最后一位/* thought for code: 冒泡排序要交换n-1次,这是第一层循环 在每一次交换中都会把最大的数放到最右边,此时最右边这个数便不用参加排序了 因此,第二层循环的条件是-i*/int array[] = { 4, 3, 5, 1 }, temp =原创 2021-08-02 21:10:43 · 141 阅读 · 0 评论 -
哈希表(散列表)的伟大之处!
哈希表的伟大之处!为什么选哈希表?哈希表哈希函数的构造方法处理冲突的方法哈希表的查找及分析code为什么选哈希表?为什么要用哈希表?其他查找方法缺点在哪里?在线性表、树等数据结构中,记录在结构中的相对位置是随机的,和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较(查找的效率依赖于查找过程中所进行的比对次数)想要不经过任何比较、一次存取就能得到所有记录,就必须在记录的存储位置和她的关键字之间建立一个确定的对应关系,使得每个关键字和结构中一个唯一的存储位置相对应。在原创 2021-08-01 21:59:43 · 282 阅读 · 0 评论 -
图的邻接矩阵和邻接表及其选择
一般图的表示方法为G(V,E),其中G表示graphic图,V表示点的集合,E表示边的集合,一般可以用邻接矩阵和邻接表来表示一个图图的分类:按照方向可以分为有向图和无向图按照权重可以分为带权图和不带权图邻接矩阵表示法无向图 || 有向图:dp[a][b]表示a行和b行是否连通(默认从1开始)int dp[][] = { {0, 1, 1}, {0, 0, 1}, {0, 0, 0},};带权图 || 不带权图:dp[a][b]表示的是a行和b行的权重是多少(一般有数值即有权重),原创 2021-08-01 15:06:32 · 1052 阅读 · 0 评论 -
数据结构精解(4):栈和队列
栈(stack)是限定仅在表尾进行插入或删除操作的线性表,因此,对于栈来说,表尾端有其特殊含义,称为栈顶,相应的,表头端称为栈底,不含元素的栈称为空栈栈有一个重要的性质,就是先进后出,First ln Last Out(FILO)。给几个元素,求其合法的出栈顺序个数,采用卡特兰数(1 / (n + 1)) * C[n, 2n]#include <stdio.h>#include <stdlib.h>typedef struct Stack { int * data;原创 2021-07-31 18:16:44 · 98 阅读 · 0 评论 -
unordered_map和map的差异
内部实现机理:map:红黑树(一种非严格平衡二叉排序树),具有自动排序的功能,红黑树的每一个结点代表着map的一个元素,因此,对于map的增删改查都相当于对于红黑树的操作,因此,使用中序遍历(左中右)可以将元素升序输出。二叉排序树指的是左孩子结点的值小于根结点的值,右孩子结点的值大于根结点的值,比如传统的二叉排序树(BST)和平衡二叉树(AVL)unordered_map:哈希表(hashtable),也叫散列表,通过把关键码值映射到Hash表中一个位置来访问记录,查找的时间复杂度可达到O原创 2021-07-30 18:22:00 · 207 阅读 · 0 评论 -
数据结构精解(2):线性表(顺序表和链表)
线性表(顺序表和链表)线性表顺序表信息描述初始化、增删改查链表信息描述初始化、增删改查特殊链表Leetcode文章结构:第一部分是描述相关信息,第二部分是相关操作(初始化、增删改查),第三部分是解答相关习题(《数据结构–严蔚敏》),第四部分是leetcode题目(一道easy+一道middle)青春的幻想既狂热又可爱。一约肖特豪斯线性表线性表是由相同数据类型的 nn 个数据元素 a0,a1,an−1组成的有限序列。一个数据元素可以由若干个数据项组成。若用 LL 命名线性表,则其一般表示如下:原创 2021-07-28 23:29:20 · 121 阅读 · 0 评论 -
数据结构精解(1):引言及时间复杂度和空间复杂度
导读:本系列是完全面对考研的,所以是详略得当的原则,当然,重要的必然会详细,数据结构作为计算机课程中一门极其重要的课程,无论是理论还是实践都是很重要的,也希望大家在看文章的同时多多进行针对性刷题。打牢基础,攻坚拔地。既然决定了考研,那便朝着这个方向,努力前进吧!本系统会持续更新,并且在每篇文章的末尾会进行一定的题型训练,主要是针对leetcode网站的。(一篇easy+一篇middle)一起加油吧!只有向自己提出伟大理想,并以自己全部的力量为之奋斗的人,才是最幸福的。——加里宁什么是数据结构原创 2021-07-28 16:56:27 · 91 阅读 · 0 评论