
数据结构
文章平均质量分 54
diluosixu
这个作者很懒,什么都没留下…
展开
-
排序算法-快速排序
快速排序采用的是分治思想,即在一个无序的序列中选取一个任意的基准元素pivot,利用pivot将待排序的序列分成两部分,前面部分元素均小于或等于基准元素,后面部分均大于或等于基准元素,然后采用递归的方法分别对前后两部分重复上述操作,直到将无序序列排列成有序序列。原创 2024-08-29 17:06:42 · 547 阅读 · 0 评论 -
排序算法-堆排序
堆在形式上是一棵完全二叉树(假设树的高度是h,所有的叶子结点都是在第h层或h-1层)堆分为两类,大根堆和小根堆:大根堆:每个结点的值都大于等于其孩子结点的值;小根堆:每个结点的值都小于等于其孩子结点的值;堆在形式上是一棵完全二叉树,用数组存储它,不会浪费空间;。原创 2024-08-29 02:46:58 · 517 阅读 · 0 评论 -
并查集
并查集的主要作用是求连通分支数。并查集由一个整型数组pre[]和两个函数find()、join()构成。数组pre[]记录了每个点的前导点是什么,函数find(x)用于查找,函数join(x, y)用于合并。问题引入话说江湖上散落着各式各样的大侠,他们有的行侠仗义,有的打抱不平,有的为推翻当政者统治,有的则是为了做真实的自己。但是人与人之间,总有着不同的信仰和不同的目的,在碰到和自己不是一路人的,就免不了要打一架。但大侠们有一个优点就是讲义气,绝对不打自己的朋友。而且他们信奉“朋友的朋友就是我的朋友”原创 2020-12-29 18:27:15 · 171 阅读 · 0 评论 -
卡片游戏
卡片游戏桌上有一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号1~n。当至少还剩两张牌时进行以下操作: 把第一张牌扔了,然后把新的第一张放到整叠牌的最后。 输入n,输出每次扔掉的牌,以及最后剩下的牌。样例输入:7样例输出:1 3 5 7 4 2 6#include#includeusing namespace std;queue q;int m原创 2017-08-11 16:33:09 · 366 阅读 · 0 评论 -
买帽子
买帽子时间限制:1秒空间限制:32768K度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 输入描述:首先输入一个正整数N(N 输出描述:如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1输入例子1:1010 10 10 10 20 20原创 2017-11-06 19:53:48 · 186 阅读 · 0 评论 -
度度熊回家
度度熊回家时间限制:1秒空间限制:32768K一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离? 输入描述:输入一个正整数N, N 。接下来N个整数表示坐标,正数表示X原创 2017-11-06 19:55:54 · 322 阅读 · 0 评论 -
有趣的排序
有趣的排序时间限制:1秒空间限制:32768K度度熊有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的度度熊只会下面这个操作:任取数组中的一个数然后将它放置在数组的最后一个位置。问最少操作多少次可以使得数组从小到大有序? 输入描述:首先输入一个正整数N,接下来的一行输入N个整数。(N 每个数的绝对值小于等于1000) 输出描述:输出一个整原创 2017-11-06 20:07:21 · 988 阅读 · 0 评论