数据结构与算法
刘家奕_
南昌航空大学的一位热爱公益的五好青年,喜欢运动尤其是篮球。并且对Web有兴趣的一只Web狗。今年才开始接触计算机科学与技术。写博客第一可以促进自己的学习,还可以和大家一起去分享自己的学习的经验,我感觉挺充实的,希望和大家一起进步!
展开
-
排序算法的稳定性
红色的8没有变位置就是稳定的。原创 2023-02-12 21:17:23 · 73 阅读 · 0 评论 -
希 尔 排 序
然后间隔减半 重新设置间隔分组 同上方法。(通常为总长度的一半,奇数偶数都可以)然后进行内部排序 直接插入排序。原创 2023-02-08 13:39:37 · 82 阅读 · 0 评论 -
数据结构根据二叉树写出先 中 后序(快速)
先写出根节点 和 它的孩子。再看左孩子(D)的孩子。原创 2023-02-04 17:31:10 · 118 阅读 · 0 评论 -
1046. 最后一块石头的重量
有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为x 和y,且x <= y。那么粉碎的可能结果如下:如果x == y,那么两块石头都会被完全粉碎;如果x != y,那么重量为x的石头将会完全粉碎,而重量为y的石头新重量为y-x。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。示例:输入:[2,7,4,1,8,1]输出:1解释:先选出 7 和 8,得到 1,所以...原创 2022-02-21 16:57:13 · 52 阅读 · 0 评论 -
4. 寻找两个正序数组的中位数
给定两个大小分别为 m 和 n 的正序(从小到大)数组nums1 和nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 =..原创 2022-02-15 15:47:42 · 180 阅读 · 0 评论 -
标准C++中map容器的用法总结
一、简单介绍map 是一个容器,它用于储存数据并且能从一个数据集合中取出数据。它的数据组成包含两项,一个是它的数据值,一个是用于排序的关键字。其中关键字是惟一的,它用于将数据自动排序。而每个元素的数据值与关键字无关,可以直接改变。需加载的头文件:#include<map>using namespace std;具体可参考:https://blog.csdn.net/zhuochuyu7096/article/details/82817197https://blog.csdn.转载 2022-02-13 16:09:09 · 631 阅读 · 0 评论 -
AcWing 129. 火车进栈
原题链接:https://www.acwing.com/problem/content/description/131/https://www.acwing.com/problem/content/description/131/这里有 nn 列火车将要进站再出站,但是,每列火车只有 11 节,那就是车头。这 nn 列火车按 11 到 nn 的顺序从东方左转进站,这个车站是南北方向的,它虽然无限长,只可惜是一个死胡同,而且站台只有一条股道,火车只能倒着从西方出去,而且每列火车必须进站,先进后出。原创 2022-02-13 15:48:21 · 302 阅读 · 0 评论 -
C++的库函数搜集
1.头文件:#include <stdlib.h>定义函数:int tolower(int c);函数说明:若参数 c 为大写字母则将该对应的小写字母返回。返回值:返回转换后的小写字母,若不须转换则将参数c 值返回。例子:A->a#include<bits/stdc++.h>using namespace std;int main(){ char a='A'; char b; b=tolower(a); cout<<b; re原创 2022-02-12 15:18:15 · 377 阅读 · 0 评论 -
93. 递归实现组合型枚举
从 1∼n1∼n 这 nn 个整数中随机选出 mm 个,输出所有可能的选择方案。输入格式两个整数 n,mn,m ,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行 11 个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如 1 3 5 7 排在 1 3 6 8 前面)。数据范围n>0n>0,0≤m≤n0≤m≤n,n+(n−m)≤25n+(n−m)≤25输入样例..原创 2022-02-11 19:56:44 · 444 阅读 · 0 评论 -
break跳出几层循环,是一层还是全部?
break跳出几层循环,是一层还是全部?这个问题我相信大家都有过这样的疑惑。在for循环使用break当满足if条件语句时,则会执行break,跳出整个for循环。在while循环使用break和for差不多。总的来说,break是跳过所有的循环。...原创 2022-02-11 13:50:23 · 26370 阅读 · 13 评论 -
栈(Stack )
栈(Stack )是支持push和pop两种操作的数据结构。push是在栈的顶端放入- -组数据的操作。反之,pop是从其顶端取出一-组数据的操作。 因此,最后进人栈的一-组数据可以最先被取出 (这种行为被叫做LIFO: Last In First Out,即后进先出)。通过使用数组或者列表等结构可以很容易实现栈,不过C++、Java等程序 语言的标准库已经为我们准备好了这一常用结构,在比赛中需要时不妨使用它们。C++的标准库中,stack::pop完成的仅仅是移除最顶端的数据。如果要访问最顶端的数据,需要原创 2022-02-10 16:46:33 · 981 阅读 · 1 评论 -
数据结构和算法——基本概念和术语
数据元素与数据对象 .数据元素一组成数据的基本单位.与数据的关系:是集合的个体 .数据对象一性质相同的数据元素的集合.与数据的关系是:集合的子集数据结构数据结构的两个层次...原创 2022-02-08 17:02:29 · 364 阅读 · 1 评论 -
数据结构和算法——基本概念和术语
1.2.1 数据、数据元素、数据项和数据对象■数据(Data)■数据元素(Data Element)■数据项(Data Item)■数据对象(Data Object)1.数据.是能输入计算机且能被计算机处理的各种符号的集合.信息的载体.是对客观事物符号化的表示;.能够被计算机识别、存储和加工2.数据元素(Data Element)3.数据项(Data Item)■数据对象(Data Object)...原创 2022-02-08 16:50:38 · 206 阅读 · 0 评论