![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言学习
文章平均质量分 89
偷影子的人儿
这个作者很懒,什么都没留下…
展开
-
辗转相除法
求两个数的最小公约数经常使用辗转相除法。代码很简单,如下所示:#include<stdio.h>int main(){ int M,N; scanf("%d %d",&M,&N); int a=M,b=N; if(M<N)//先调整大小,使M为两数中较大者,N为较小者 { int t=M; M=N; N=t; } int r=M%N;//求得余数 w原创 2020-12-22 17:36:37 · 5441 阅读 · 1 评论 -
拓扑排序以及求解关键路径
拓扑排序以及求解关键路径都是属于有向无环网的应用拓扑排序:解决工程能否顺序进行的问题介绍2个概念AOV网:在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称之为AOV网。弧表示活动之间的某种制约关系:比如演职人员确定了,场地联系好了,才可以开始进场拍摄。 AOV网中不能存在回路,即不能存在环,否则某个活动的开始要以自己完成...原创 2019-10-29 23:57:44 · 3726 阅读 · 0 评论 -
最短路径算法(迪杰斯特拉算法,弗洛伊德算法)
最短路径:非网图:指两个顶点之间经过的边的数量最少的路径网图:指两个顶点之间经过的边上权值之和最少的路径两种算法:迪杰斯特拉算法:求某个源点到其余各顶点的最短路径问题 弗洛伊德算法:求图中每一对顶点之间的最短路径1.迪杰斯特拉算法(Dijkstra)迪杰斯特拉是一个按路径长度递增的次序产生最短路径的算法大致道理:引进辅助分量D,每个分量D[i]表示从初始点到终点的最...原创 2019-10-29 13:20:36 · 1807 阅读 · 0 评论 -
最小生成树算法(普里姆算法和克鲁斯卡尔算法)
什么是生成树?一个连通图的生成树是一个极小的连通子图,它含有图中全部的n个顶点,但是只有足以构成一棵树的n-1条边。理解:连通图是属于无向图的范畴,有向图的连通子图叫强连通图 它含有n个全部顶点,只有n-1条,将n个顶点连起来至少要n-1条边 少于n-1条边连不起来,那么则无法连通。比如10个点直线连起来至少中间要有9条边 多于n-1条边会形成环,是连通图,但是不是极小的连通子图...原创 2019-10-25 12:59:34 · 3505 阅读 · 0 评论 -
排序算法学习之归并排序(2-路归并排序)
归并排序基本思路:假设初始序列有n个记录,则可看成是n个有序的子序列,每个序列长度为1,然后两两归并,得到个长度为2或者是1的有序子序列;再两两归并,,,,如此重复,直到得到一个长度为n的有序序列为止,这种排序方法称为2-路归并排序。详细动态图解(详细图解)-------号外:归并排序发明者竟然是约翰-冯诺伊曼归并操作的工作原理如下:第一步:申请空间,使其大小为两个已经排序序列...原创 2019-10-10 20:43:02 · 1099 阅读 · 0 评论 -
选择排序(简单选择排序,树形选择排序,堆排序)
简单选择排序基本思想:第i趟排序经过n-i次关键字的比较在n-i+1(i=1,2,3,......n-1)个记录中选取关键字最小的记录作为序列的第i个记录直接看代码!没啥好说的这个!void SelectSort(SqList *L){ for(int i=0;i<L->length-1;i++){//总共进行n-1趟排序,便可使整个序列有序 { ...原创 2019-10-09 19:43:38 · 601 阅读 · 0 评论 -
排序算法学习之交换排序(冒泡排序,快速排序)
冒泡排序名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。步骤:进行第i趟排序:比较第1个记录和第2个记录关键字,逆序则交换两个记录 往后比较第2个记录和第3个记录,逆序则交换两个记录 依次往后比较,直到比较完第n-i个记录和第n-i+1个记录,逆序则交换两个记录 关键字最大的记录...原创 2019-10-08 17:51:06 · 156 阅读 · 0 评论 -
插入排序(直接插入排序,折半查找插入排序,2-路插入排序,表插入排序,希尔排序)
直接插入排序(n个元素非递减排序)原理:将一个记录插入到已经排好序的有序表中(将序列第一个记录看做只有一个记录的有序序列),得到新的记录数+1的有序表//顺序表结构#define MAXSIZE 20typedef struct{ int r[MAXSIZE];//默认是短整形 int length;//表长}SqList;步骤:将第i个记录插入前面含有第...原创 2019-10-07 13:48:17 · 936 阅读 · 0 评论 -
C语言控制台打印输出整齐问题
关键词:控制台\打印\制表符\空格\格式控制符\列\对齐\初衷:经常写程序时需要打印输出,然后每次又打印的一团糟糕,我又是一个接近强迫症和略微完美主义者,碰巧好像网上没有我所需要的帖子,所以经过探索之后得到这些如何让自己在控制台打印输出整齐的Tips,同时和大家分享!鄙人水平不够,有错还望指教首先你需要明白的影响打印整齐控制的因素:1.制表符(8个空格)2.键盘输入一个空格(一个空...原创 2019-07-08 17:19:33 · 9134 阅读 · 2 评论 -
数据结构习题集之银行业务模拟(双队列事件驱动)
个人感受和想法:写这个课程设计很煎熬,时间话的太久,我就是一个容易死磕的笨蛋,一直不太理解离散事件驱动,在网上看了很多博客,感觉乱糟糟看不下去,有些对离散事件驱动感觉写的体现不明显,我就比较偏执所以主线是根据事件驱动函数执行的,其实这个里面涉及到一些解锁开锁的问题,操作系统里面的知识我忘记了许多,并且这个程序是模拟,初始条件随机,对于出现结果难于预期,于是感觉还是比较绕吧,但还是被我怼出来了!...原创 2019-07-21 21:59:47 · 1101 阅读 · 0 评论 -
数据结构习题集实习之航空客运订票系统(示意系统,全部数据放在内存)
航空客运订票系统1、系统名称:航空客运订票系统航空客运订票的业务活动包括:查询航线、客票预定和办理退票等。要求在TC或VC环境下设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。2、要求:(1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日期(星期几)、乘员定额、余票量、已经订票的客户名单(包括姓名、订票量)以及等候替补的客户名单(包括姓名、所需票量)。(2...原创 2019-08-03 00:43:56 · 4627 阅读 · 8 评论