笔记
久长愿长久
请多指教
展开
-
Josephus问题(Ⅱ)--oj课设
n个人排成一圈,按顺时针方向依次编号1,2,3…n。从编号为1的人开始顺时针"一二"报数,报到2的人退出圈子。这样不断循环下去,圈子里的人将不断减少。最终一定会剩下一个人。试问最后剩下的人的编号。n很大,直接模拟题意不行,请找出规律。不超过1000组数据。每组数据一行,每行一个正整数,代表人数n。 (1 ...原创 2022-06-13 13:15:49 · 1334 阅读 · 0 评论 -
Josephus问题(Ⅰ)-oj课设
n个人排成一圈,按顺时针方向依次编号1,2,3…n。从编号为1的人开始顺时针"一二"报数,报到2的人退出圈子。这样不断循环下去,圈子里的人将不断减少。最终一定会剩下一个人。试问最后剩下的人的编号。要求程序模拟题意来实现。不超过1000组数据。每组数据一行,每行一个正整数,代表人数n。 (1 ...原创 2022-06-13 13:00:23 · 870 阅读 · 0 评论 -
算法10-6~10-8:快速排序--hnust-oj
按照题目描述中的算法完成希尔排序的算法。希尔排序的时间复杂度分析是一个复杂的问题,因为其时间与所取的“增量序列”相关。目前为止尚未有人求得一种最好的增量序列。增量序列可以有多种不同的取法,但是需要注意的是,在选取增量序列时务必使序列中的值没有除1以外的公因子,且最后一个增量值必须等于1。与直接插入排序相比,通过选择合适的增量序列,希尔排序算法能够使排序的效率得到部分的提高,但是由于其形式的复杂性和增量序列选择并没有定论,所以在实际应用中希尔排序...原创 2022-06-09 08:56:36 · 888 阅读 · 0 评论 -
算法10-1:直接插入排序--hnust-oj
目录题目描述提示输入输出样例输入 样例输出 可执行代码在本题中,需要按照题目描述中的算法完成直接插入排序的算法。直接插入排序算法的思路非常直接,就是通过将记录插入到已经有序的有序表中,并重排记录。通过分析,不难发现直接插入排序的时间复杂度为O(n2),并不是一种非常高效的排序方法。在本题中,需要按照题目描述中的算法完成直接插入排序的算法。直接插入排序算法的思路非常直接,就是通过将记录插入到已经有序的有序表中,并重排记录。通过分析,不难发现直接插入排序的时间复杂度为O(n2),并不是一种非常高效的排序方法。原创 2022-06-09 08:25:22 · 1008 阅读 · 0 评论 -
折半查找--hnust oj
题目描述在一个升序排列的整数数字序列中查找,并返回相应的查找结果。输入每个测试用例由多行组成,第一行是两个整数n和m,其中,1<=n,m<=1000000。自第二行起一共有n+m个整数,其中前面n个整数代表升序排列的有序序列,随后的m个整数是待查询的数。n+m个整数的取值在范围1到10^12(10的12次方)之间。输出对于每个待查询的数,如果在有序序列中则输出"yes",否则输出"no",每行输出一个查询结果。样例输入5 36 23 45 56 58633原创 2022-05-26 09:13:38 · 572 阅读 · 0 评论 -
深度优先搜索hnust-oj
一.题目描述 输入一个图,用邻接矩阵存储(实际上也可以选择邻接表),并实现DFSTraverse操作。拷贝前面已经实现的代码,主函数必须如下,完成剩下的部分。int main(){ Graph g; CreateUDG(g); DFSTraverse(g); cout << endl; DestroyUDG(g); return 0;}//main输入输入的第一行是两个整数,分别是图的总顶点数n和总边数e第二行是n个空格分开...原创 2022-05-05 13:06:16 · 1915 阅读 · 0 评论 -
图的遍历——深度优先搜索hnust-oj
目录一.题目描述输入输出样例输入样例输出二.代码实现一.题目描述深度优先搜索遍历类似于树的先根遍历,是树的先根遍历的推广。其过程为:假设初始状态是图中所有顶点未曾被访问,则深度优先搜索可以从图中的某个顶点v出发,访问此顶点,然后依次从v的未被访问的邻接点出发深度优先遍历图,直至图中所有和v有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作为起始点,重复上述过程,直至图中所有顶点都被访问到为止。其算法可以描述如下:在本题中.原创 2022-05-05 13:01:47 · 955 阅读 · 0 评论 -
邻接矩阵表示法
题目描述 输入一个图,用邻接矩阵存储,并实现一些操作。拷贝下面的代码,按要求完成其中的FirstAdjVex,NextAdjVex和CreateUDG操作,其他地方不得改动。//邻接矩阵表示图#include <iostream>#include <iomanip>#include <cstdio>using namespace std;#define MVNum 100 //最大顶点数typedef string VerTexType...原创 2022-05-04 12:49:30 · 1492 阅读 · 0 评论 -
用两个栈模拟队列
题目描述设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数:int IsFull(Stack S):判断堆栈S是否已满,返回1或0; int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0; void Push(Stack S, ElementType item ):将元素item压入堆栈S; ElementType Pop(Stack S ):删除并返回S的栈顶元素。实现队列的操作,即入队void.原创 2022-04-13 20:23:08 · 1171 阅读 · 0 评论 -
数制的转换
题目描述将十进制数转换为八进制,并输出。要求先拷贝前面一个栈的实现,如果使用顺序栈要调整容量。再利用其实现conversion函数。输入输入包含若干十进制正整数。输出输出相应的八进制数,每个占一行。样例输入Copy1237891910020345样例输出Copy123710112346162771代码实现/***链栈的实现***/#include<iostream>#include<fstream&g...原创 2022-03-31 17:14:45 · 211 阅读 · 0 评论 -
链队的实现
拷贝下面的代码,按要求完成链式队列的QueueEmpty,QueueLength,QueueEmpty,EnQueue和DeQueue操作,其他地方不得改动。/***链队的基本操作***/#include<iostream>#include<cstdlib>#include<cstdio>using namespace std;#define MAXQSIZE 6#define OK 1#define ERROR 0#define OVERFLO.原创 2022-03-31 16:42:21 · 815 阅读 · 0 评论 -
逆转单链表
题目描述设计一个算法,将链表中所有结点的链接方向“原地”逆转,即要求利用原表的存储空间,换句话说,要求算法的空间复杂度为O(1)。本题源自教材第53页算法设计题第7题。在不完整程序中,请将逆转单链表的函数定义完成。#include<iostream>using namespace std;//定义单链表,参考教材P30typedef struct LNode{ int data; struct LNode *next;}LNode,*LinkList;void.原创 2022-03-30 22:16:23 · 646 阅读 · 0 评论 -
合并有序链表
题目描述将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。合并后的表中不允许有重复的数据。本题源自教材第53页算法设计题第1题。在不完整程序中,请完成MergeList_L()函数的定义。函数首部:void MergeList_L(linkList &LA,linkList &LB) #include<iostream>using namespace std;//定义单链表,参考教材P30...原创 2022-03-30 22:08:01 · 3829 阅读 · 0 评论 -
两个稀疏多项式相加
题目描述写一个算法,实现两个稀疏多项式相加。本题源于教材第46页的案例2.2。在不完整程序中,请将AddPolyn()定义完整。函数首部:void AddPolyn(Polynomial &Pa,Polynomial &Pb)不完整程序#include<iostream>using namespace std;typedef struct PNode{ float coef; //系数 int expn; //指数 struct PNod...原创 2022-03-30 22:02:19 · 1589 阅读 · 0 评论 -
顺序栈的实现
题目描述拷贝下面的代码,按要求完成顺序栈的Push,Pop,StackEmpty和GetTop操作,其他地方不得改动。/***顺序栈的实现***/#include<iostream>#include<cstdlib>#include<cstdio>using namespace std;//顺序栈定义#define OK 1#define ERROR 0#define OVERFLOW - 2#define MAXSIZE 5 //顺序栈存原创 2022-03-30 21:56:51 · 791 阅读 · 2 评论 -
顺序表实现(第一部分)
问题 A: 顺序表实现(第一部分)按要求完成其中顺序表的ListLength,ListEmpty和ListInsert操作原创 2022-03-21 23:35:18 · 1012 阅读 · 0 评论