自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 新年flag

在新的一年里,我希望能够积极参与开源项目,为社区做出自己的贡献。我计划选择一个感兴趣的研究方向,深入学习相关的理论知识,参与到导师的研究项目中,争取发表一篇学术论文,为自己的学术生涯打下坚实的基础。在新的一年里,我计划保持规律的作息时间,合理安排学习和休息的时间,坚持每周进行适量的运动,保持良好的饮食习惯,以保持身心健康。项目实践:我希望在新的一年里能够参与更多的项目实践,锻炼自己的团队合作能力和项目管理能力。我计划参加更多的课程和培训,积极参与项目实践,不断学习新的编程语言和技术,以提高自己的编程水平。

2024-01-03 21:26:24 336

原创 实验五:分枝限界法

算法分析: Dijkstra算法的时间复杂度为O(n^2),其中n为节点的个数。由于使用了优先队列H来优化算法,堆的插入和删除操作的时间复杂度为O(logn),因此总的时间复杂度为O(nlogn)。然后遍历该节点的相邻节点,更新其距离和前驱节点。创建一个优先队列,用于存放待扩展的节点,初始时将起始节点加入队列中。如果通过扩展节点能够获得更短的距离,则更新该节点的距离和前驱节点。初始化起始节点的距离为0,其他节点的距离为无穷大。遍历该节点的相邻节点,更新其距离和前驱节点。将更新后的节点加入优先队列中。

2024-06-16 18:49:13 520

原创 实验:回溯法

在每一次操作中,需要检查边的数量,因此总体的时间复杂度为O(m^n * E),其中E表示边的数量。算法的主要思想是尝试为每个顶点选择一个颜色,然后递归地为剩下的顶点选择颜色,直到所有顶点都着色完毕。设下图G=(V,E)是一连通无向图,有3种颜色,用这些颜色为G的各顶点着色,每个顶点着一种颜色,且相邻顶点颜色不同。在回溯函数中判断当前顶点是否可以安全地选择某个颜色,如果可以,则将该颜色赋给当前顶点,并继续递归地为剩下的顶点选择颜色。如果所有顶点都已经着色完毕,找到一个新的解,将解的数量加1,并打印出该解。

2024-06-15 21:29:44 940

原创 动态规划法

对于下列所描述的问题,给出相应的算法描述,并完成程序实现与时间复杂度的分析。按给定的一组测试数据对根据算法设计的程序进行调试:6个矩阵连乘积A=A1×A2×A3×A4×A5×A6,各矩阵的维数分别为:A1:10×20,A2:20×25,A3:25×15,A4:15×5,A5:5×10,A6:10×25。然后使用两个嵌套循环,从矩阵个数为2开始,依次求解m[i][j]和s[i][j],其中m[i][j]表示从第i个矩阵到第j个矩阵链的最小乘法次数,s[i][j]表示从第i个矩阵到第j个矩阵链的最优划分位置。

2024-06-12 23:14:26 803

原创 实验:贪心算法

7.遍历剩下的活动数组,如果当前活动的开始时间晚于等于lastEnd,即活动不与已加入的活动冲突,将该活动加入最大相容子集,并更新lastEnd为该活动的结束时间。3.定义了一个活动安排函数activityArrangement,接受一个活动数组和活动个数作为参数,并按照活动结束时间排序后进行活动安排。cout << "请输入第"<<i+1<<"次活动信息(名称 开始时间 结束时间) : ";遍历活动数组的时间复杂度:在活动安排函数中,遍历了剩下的活动数组,时间复杂度为 O(n),其中n为活动个数。

2024-06-12 23:07:33 1795

原创 分治与递归

在生成数组a的过程中,有两个嵌套的循环,每个循环的次数都是n/2,因此循环次数总共为n/2 × n/2 = n^2/4,所以时间复杂度为O(n^2)。另外,代码中还有一个determine函数,该函数的时间复杂度为O(logn),因为每次递归都将n除以2,直到n为偶数。首先,判断n是否为2,如果是,则直接生成对阵表。首先,通过输入参赛人数n,判断n是否合法(是否为2的幂次方),如果不合法则输出错误信息。如果n不是2,递归调用roundrob函数,将n除以2传入,并分成两个子问题,分别解决。

2024-06-12 23:05:58 420

原创 我的创作纪念日

通过工作的实践,我能够更好地理解学习内容的实际意义和应用价值,发现知识的不足之处,并进一步完善和深化我的学习。软件工程是一个日新月异的领域,我希望能够紧跟时代的步伐,学习新的开发工具和技术,不断提升自己的专业素养和创新能力。通过不断学习和实践,我能够不断提升自己,在工作中取得更好的成绩,并为自己的职业发展打下坚实的基础。综上所述,作为一位软件工程专业的大学生,我希望能够在软件工程领域有所突破和发展,通过不断学习和努力提高自己的专业能力,实现自身的职业成就和个人价值。当前,我的工作和学习之间有着紧密的关系。

2024-05-14 13:49:39 867

原创 设有n=2k个运动员要进行网球循环赛。现要设计一个满足以下要求的比赛日程表:

cout << "请输入第一个选手编号" << endl;cout << "输入人数不合法" << endl;cout << "请输入参赛人数" << endl;

2024-05-09 20:38:57 441

原创 分别用高斯消元法和列主元消去法求解,(自制)表格比较两种算法的结果与精度,分析实验出现的问题,并总结解决办法。

现在,我们得到了一个上三角形矩阵,可以通过回代法求解。最后,通过第一个方程,我们可以得到x = (2 - 0.5y - 0.25z) / 1 = 1.5556。然后,通过第二个方程,我们可以得到y = (-29/3 + (10/3)z) / (1/3) = -3。最后,通过第一个方程,我们可以得到x = (10/3 - (2/3)y - (4/3)z) / 1 = 1。因此,解为x = 1,y = -3,z = -0.5。在列主元消去法中,我们会在每一列中选择绝对值最大的元素作为主元,以避免除以零的情况。

2024-04-22 21:49:41 533

原创 Java简单计算机2

System.out.println("====字符版计算机器2====");System.out.print("请输入第一个操作数:x=");System.out.print("请输入第二个操作数:y=");

2024-03-18 21:24:33 241 1

原创 Java简单计算器1

System.out.println("====字符版计算机器1====");System.out.print("请输入第一个操作数:x=");System.out.print("请输入第二个操作数:y=");

2024-03-18 21:14:59 133

原创 打印欢迎学习Java

System.out.println(name+",你好!欢迎学习Java");System.out.println("请输入你的姓名:");

2024-03-18 21:03:19 87

原创 c语言求水仙花数入门

这个程序将会遍历从100到999的所有数字,对于每个数字,它会计算其各位数字的立方和,然后检查这个和是否等于原始数字。如果是,那么这个数字就被认定为是一个水仙花数,并被打印出来。printf("%d 是水仙花数\n", i);b = i / 个位10;

2024-01-15 15:09:28 455

原创 常见的查找算法

1.线性查找:最简单的查找算法,在表中顺序查找元素。2.二分查找:在有序表中查找元素的时间复杂度是O(logN)。3.哈希查找:利用哈希函数将元素转化为哈希码,然后在哈希表中进行查找。适用于哈希表已排序的情况。4.位图查找:利用位图进行快速查找,适用于大量元素的查找。5.有序表查找:在有序数组中进行查找,时间复杂度为O(1)。6.KMP算法:用于在文本中查找子串的高效算法,时间复杂度为O(m+n)。7.Boyer-Moore算法:用于在字符串中查找子串,时间复杂度为线性时间复杂

2024-01-15 15:04:33 428

原创 除了冒泡排序,还有哪些常见的排序算法?

堆排序的核心就是构建最大堆或最小堆,然后利用堆的特性(最大堆:最大值存放在数组的最后一个位置,最小堆:最小值存放在数组分类的第一个位置)进行排序。7. 计数排序(Counting Sort):计数排序是一种非比较排序算法,它的基本思想是根据待排序的数据元素,预先统计出符合条件的元素的个数,然后根据这些信息快速的将待排序的数据进行排序。6. 希尔排序(Shell Sort):通过缩小增量,逐渐减小待排序的数组,同时,每一次缩小增量后,都要对剩余的待排序记录进行一次局部排序,这样逐步将待排序的数排成顺序。

2024-01-14 21:50:33 598

原创 大学生发展规划

其次,我们需要注重实践和项目经验的积累。通过参加一些开源项目、编写一些小型应用程序、参加一些编程竞赛等活动,可以帮助我们深入了解软件开发的实际应用和技术难点,提高我们的编程能力和解决问题的能力。作为一名软件工程专业的大学生,我们需要制定一份技术发展规划,不断提升自己的技能和能力,以适应这个行业的快速变化。首先,我们需要学习和掌握基本的编程语言和工具,如C、C++、Java、Python等。软件开发往往需要多人协作完成,良好的团队协作和沟通能力可以提高开发效率和质量,也可以帮助我们更好地理解和应对用户需求。

2024-01-03 21:36:28 511

原创 /利用冒泡排序,快速排序和堆排序完成一批数据的排序

void produce1_data(int data[],int num) //随机产生一批数。void produce_data(int data[],int num) //随机产生一批数。i--) //将二叉树转成heap。//对其余数值重建堆*/void print1_data(int data[],int num) //输出数据。//暂存heap的root值。//父结点=root值。i--) //开始进行堆排序。int i,num;

2024-01-01 20:00:04 494

原创 运用除留余数法作为哈希函数及差值解决法解决哈希冲突解决法、设计哈希表。*/

/返回,旧地址加差值除以哈希表大小取余数*/i++) //输出哈希数据。int Hash_Mod(int Key) //哈希函数之除留余数法。int Collision_Offset(int Address) //差值哈希冲突解决法。int Create_Hash(int Key) //建立哈希表。int Hash_Search(int Key) //哈希查找法。

2024-01-01 19:56:29 543

原创 运用非递归方式设计折半查找法的程序

else if (Key>data[Middle]) //欲查找值较大。void print_data(int data[],int num)//将随机产生的一批数排序输出。//记录数值是否有交换位置*/void produce_data(int data[],int num) //随机产生一批数。else if(Key==data[Middle]) //查找到数据。if(data[i]>data[i+1]) //前者较后者大。j--) //外层循环。

2023-12-31 22:38:51 394

原创 //将一个图采用邻接表存储,并在该存储方法上进行深度优先遍历..//程序构思://用户键盘输入结点与各个边,再将边转成邻接链表。//然后对采用邻接表表示的图进行广度优先遍历。

case 1:printf("请输入图的类别(有向图-1,无向图-0):");printf("请输入第%d条边的起点:",i);printf("请输入第%d条边的终点:",i);printf("顶点[%d]:",i);printf("你的输入有误,请从新输入!printf("请输入图中的总顶点数和边数:");printf("图的广度优先遍历结果为:\n");//图中的顶点信息为数字。case 2:printf("图的邻接表如下:\n");//邻接表的表头结点。//图中一条边的起始顶点。

2023-12-24 21:04:51 34

原创 //将一个图采用邻接表存储,并在该存储方法上进行深度优先遍历.

Visited[SearchP->vertex]) //判断结点未被遍历过。//调用输出邻接链表数据。case 1:printf("请输入图的类别(有向图-1,无向图-0):");#define vertexnum 100 //定义最大可输入的结点个数。printf("请输入第%d条边的起点:", i);printf("请输入第%d条边的终点:", i);//图中的顶点信息为数字。//邻接表的表头结点。//图中一条边的起始顶点。//图中一条边的终止顶点。//定义图中最大的顶点数。

2023-12-24 21:04:02 38

原创 3. 编程实现一个简单的大学人员管理程序,该程序可以管理大学的一些基本人员:学生、教师、职工。

请输入学生的姓名:"请输入学生的年龄:"请输入学生的性别:"请输入教师的姓名:"请输入教师的年龄:"请输入教师的性别:"请输入教师的院系:"请输入职工的姓名:"请输入职工的年龄:"请输入职工的性别:"请输入职工的部门:"请输入职工的职务:"

2023-12-14 15:45:27 100

原创 2. 编写一个程序,计算由3个并联的子电路组成的电路的总电阻。

include<iostream>#include<iostream>usingnamespacestd;classResistancepublicvirtualfloatclassSeriesRespublicResistancepublicSeriesRes(floatm_sr1floatm_sr2sr1 =m_sr1;sr2 =m_sr2;floatCalcRes();privatefloatsr1, sr2。

2023-12-14 15:44:32 52

原创 1.设计一个抽象类Shape。在此基础上派生出类Triangle和Circle,两者都有计算对象面积的函数GetArea和计算对象周长的函数GetPerim。编写测试程序程序:

请输入三角形三条边长度"

2023-12-14 12:19:56 177 1

原创 3.编写程序,从键盘输入5个学生的学生信息,包括学号、姓名、3门课程的成绩,计算3门课的平均成绩,将全部信息以二进制方式保存到文件中。

cout << "学号" << setw(8) << "姓名" << setw(20) << "三门课程成绩" << setw(15) << "平均成绩" << endl;cout << "请输入该生3门课程的成绩:";

2023-12-04 22:12:51 890

原创 打开指定的一个文本文件,在每一行前面加上行号。

cout << "文件打开失败!" << endl;cout << "文件打开失败!" << endl;cout << "请输入目标文件名" << endl;cout << "请输入源文件名" << endl;

2023-12-04 22:11:49 253

原创 按一行一行的方法将一个文本文件复制到另一个文件中。

cout << "文件打开失败!" << endl;cout << "文件打开失败!" << endl;cout << "请输入目标文件名" << endl;cout << "请输入源文件名" << endl;

2023-12-04 22:09:45 56

原创 在链式存储的基础上进行字符串长度计算,字符串的连接,字符串的替换,求子串运算。

printf("请输入取子串的位置和长度:");printf("两串字符连接后的结果为:");printf("请输入第二串字符串:");printf("请输入替换字符串:");case 3:printf("请输入第一串字符:");case 1:printf("请输入一串字符:");case 2:printf("请输入源字符串:");printf("请输入替换位置:");printf("替换后的结果为:");case 4:printf("请输入一串字符:");printf("字符串:");

2023-11-25 18:05:05 37

原创 在顺序存储的基础上进行字符串长度计算,字符串的连接,字符串的替换,求子串运算

printf("字符串:%s的长度为%d\n",str.string,length);// 通过循环,将S2串的元素逐一复制到S1串的后面,int str_len(SSTRING *s) //串的长度计算函数。void str_input(SSTRING *s) //串的输入函数。printf("请输入第二串字符串:");printf("请输入替换字符串:");

2023-11-25 18:03:17 48

原创 链队列基本操作

/队列的数据元素类型。printf(" 欢迎使用队列操作小程序:\n");case 3:printf("队列中的元素分别为:\n");void printqueue(LINKQUEUE *QL)//队列的显示。printf("队列中的元素为:\n");printf("队列中的元素为:\n");printf("\t1、元素入队\n");printf("\t2、元素出队\n");printf("\t3、显示队列\n");

2023-11-25 16:34:14 30

原创 利用顺序栈实现十进制整数转换转换成r进制

/N整除r所得的商赋值给N。printf("选择将该数转换为几进制数(2,8,16):");empty(s)) //此循环为出栈操作。//将N除以r所得的余数压入栈。void initstack(SEQSTACK *s)//顺序栈初始化。void push(SEQSTACK *s,int x)//元素x进栈。int pop(SEQSTACK *s)//元素出栈,出栈元素用e返回。int empty(SEQSTACK *s) //判断栈空。printf("转换后的结果为:");

2023-11-25 16:26:17 259

原创 利用单链表完成一个班级学生课程成绩的简单管理

while(i<=0||i>head->data.num)//插入位置不合理 ,重新输入插入位置。

2023-11-25 16:24:31 51

原创 利用顺序表完成一个班级学生课程成绩的简单管理

if (i <= 0 || i > Li->length)//删除位置检验,如果错误就返回0退出程序。//输入第i个学生的成绩。int listdel(LIST* Li, int i) //删除一个学生信息。

2023-11-25 16:23:33 167

原创 开发一个简单的大学人员管理程序,该程序可以管理大学的一些基本人员:学生(student)、教师(teacher)。首先设计一个虚基类person。

cout << "教师院系" << department[10] << endl;cout << "学生专业" << speciality[10] << endl;cout << "教师院系" << department[10] << endl;cout << "人员的身份证号码" << ID << endl;cout << "人员姓名:" << name << endl;cout << "人员年龄:" << age << endl;cout << "人员性别:" << sex << endl;

2023-11-23 21:40:04 107

原创 类的继承与多态实验

Assistant a("李玮", "男", "420300199212032323", "软件141", "电信系");cout << "身份证号码:" << id_number << endl;cout << "系部:" << department << endl;" << endl;" << endl;cout << "班级:" << classname << endl;cout << "性别:" << gender << endl;cout << "姓名:" << name << endl;

2023-11-23 21:38:26 27

原创 2. N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。

cout << "学号:" << id << " 姓名:" << name << " 分数:" << score << endl;cout << "是否继续输入,是1/否0" << endl;cout << "平均分为" <<avg<< endl;cout << "请输入学生信息" << endl;void student::disp() //显示信息。void student::avg() //计算平均分。cout << "请输入学生的姓名:";

2023-11-23 21:34:00 368

原创 1.用对象数组实现一个简单的银行账户管理系统,完成多个用户的开户、存款、取款和查询余额等行为。

include<stdlib.h> //system("cls")清屏函数和exit()用到此头文件。" << endl;cout << " 简单银行帐户系统" << endl << endl;cout << "透支,请重新输入取款金额" << endl;cout << "请根据菜单进行操作选择:" << endl;cout <<"当前账户余额为"<< mBalance << endl;cout << "4:退出 " << endl << endl;

2023-11-23 21:32:37 143

原创 2.设计复数类,实现复数的+、-、*、/运算。

cout << "结果是" << c.geta() << "+" << c.getb() << "i" << endl;cout << "结果是" << c.geta() << c.getb() << "i" << endl;cout << "* 1.加法 *" << endl;cout << "结果是" << c.getb() << "i" << endl;cout << "结果是" << c.geta() << endl;cout << "加法:" << endl;

2023-11-23 21:29:52 55

原创 设计一个银行账户(Account)类,包含户名、帐号以及当前余额属性,可完成开户、存款、取款和查询余额等行为

case 3: cout << "余额为:" << p.getBalance() << endl;#include<stdlib.h> //system("cls")清屏函数用到此头文件。cout << " 简单银行帐户系统" << endl << endl;cout << endl << "敲回车继续!cout << "请输入开户信息:" << endl << endl;cout << "请输入选择:" << endl;cout << "4:退出 " << endl << endl;

2023-11-23 21:27:17 1030

原创 3.建立一个简单的银行账户系统。关于账户的信息有:户名、账号、余额。对账户的管理有:开户、存款、取款、查询余额等功能。用结构化程序设计方法设计一个程序,使该程序能对银行账户的信息进行上述操作管理。

cout << " 简易银行帐户系统" << endl << endl;cout <<"当前账户余额为"<< p->mBalance << endl;cout << "余额不足 请重新输入" << endl;cout << "5:退出 " << endl << endl;cout << "4:查询余额 " << endl;cout << "2:存款 " << endl;cout << "1:开户" << endl;cout << "3:取款" << endl;cout << "存款金额:";

2023-11-23 21:25:31 178

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除