自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 求两个相等长度的升序序列的中位数,要求时间和空间利用率低

问题描述:一个长度为L(L>=1)的升序序列S,处在第个位置的数称为S的中位数。例如,若序列=(11,13,15,17,19),则的中位数是15。两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若=(2,4,6,8,20),则和的中位数是11。现在有两个等长升序序列A和B,设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A和B的中位数。算法设计思想: Step1 分别求两个升序序列A和B的中位数,设为a和b;Step2 若a=b,则a或b即为所求的中位数,算法结束;(因为.

2020-09-07 18:26:38 38

原创 将数组中的元素循环左移p位,且要求时间和空间两方面尽可能高效

问题描述:将n(n>1)个整数存放在一维数组R中,设计一个在时间和空间两方面都尽可能高效的算法。将R中保存的序列循环左移p(0<p<n)个位置,即将R中的数据(x0,x1,x2,...x(n-1))变换为(xp,x(p+1),...,x(n-1),x0,x1,...,x(p-1))。算法设计思想:可以将线性表中前p个元素当成一个数组,第p+1到第n个元素当成一个数组,然后问题就转化为了将数组中的两个线性表位置互换,即,先将前半部分逆置,再将后半部分逆置,最后将整个表逆置(参见:数.

2020-09-06 17:52:55 77

原创 用最短时间查找有序顺序表中的x,找不到则插入

问题描述:线性表(a1,a2,a3,...,an)中的元素递增有序且按顺序存储于计算机中。设计一算法,完成用最少时间在表中查找数值为x的元素,若找到则将其与后继元素想交换,若找不到则将其插入表中并使表中元素仍旧有序。算法设计思想:因为线性表递增有序,又要求时间最短查找,所以使用折半查找法最好。代码及结果:#include<stdio.h>#include "线性表的顺序表示和实现.cpp"void SearchExchangeInsert(SqList &..

2020-09-05 17:34:18 69

原创 数组中两线性表位置互换且空间复杂度为O(1)

问题描述:在一维数组A[m+n]中依次存放两个线性表(a1,a2,a3...am)和(b1,b2,b3...bn)。编写一个函数,将数组中两个顺序表的位置互换,即将(b1,b2,b3...bn)放在(a1,a2,a3...am)的前面。算法设计思想:首先将数组中的全部元素(a1,a2,a3...am,b1,b2,b3...bn)原地逆置为(bn...b3,b2,b1,am...a3,a2,a1),然后再将前n个元素和后m个元素分别逆置,从而实现顺序表的位置互换。代码及结果:#inc..

2020-09-05 15:43:53 111

原创 将两个顺序表合并为一个新的顺序表

问题描述:将两个有序顺序表合并为一个新的有序顺序表,并有函数返回结果顺序表。要求时间复杂度O(n)算法设计思想:首先,按顺序取两个顺序表表头较小的结点存入新的线性表中直到某一个表遍历完;然后将还有剩余元素的表的剩下结点加到新的顺序表后。代码及结果:#include<stdio.h>#include "线性表的顺序表示和实现.cpp"bool Merge(SqList &A,SqList &B,SqList &L){ //将有序顺序表A和B合.

2020-09-04 00:23:58 651

原创 删除有序顺序表中相同的元素,要求时间复杂度为O(n)

问题描述:从有序表中删除所有值重复的元素,使表中元素均不同。算法设计思路:因为是顺序表,所以相同的元素一定在连续的位置上。基于此,初始时,将第一个元素看做是非重复的有序表,之后依次判断后面的元素是否与前面非重复有序表的最后一个元素相同,若相同则继续向后判断,不相同则插入到前面的非重复有序表的最后,直至判断结束为止。代码及结果:#include<stdio.h>#include "线性表的顺序表示和实现.cpp"bool Del_Same(SqList &L).

2020-09-03 18:59:07 369

原创 顺序表中删除 s 和 t 之间的元素

问题描述:从有序顺序表中删除值在给定值 s 和 t (s<t)之间的所有元素,如果 s 或 t 不合理或顺序表为空,则显示出错信息并退出程序。思路分析:可以使用k记录需要保存的元素个数,但是这题有一个特点是线性表是有序表,所以删除的元素必定是相连的整体。算法设计思想:先寻找值大于等于 s的第一个元素(第一个要删除的元素),然后寻找值大于 t 的第一个元素(要删除元素的下一个元素),将这段元素删除,后面的元素前移。代码及结果:因为大于 t 的第一个元素最终要挪到大于等于 s...

2020-09-03 00:25:48 175

原创 顺序表中删除指定值时间复杂度为O(n)空间复杂度为O(1)

问题描述:长度为n的线性表,删除表中所有值为x的元素,要求时间复杂度为O(n),空间复杂度为O(1)。算法设计思想:用k记录顺序表中不等于x的元素个数,即需要保存的元素个数,边扫描L边统计k,并将不等于x的元素放在L.data[k]中,最后修改L的长度。代码及结果:#include<stdio.h>#include "线性表的顺序表示和实现.cpp"void Del_x(SqList &L,ElemType x){ //删除顺序表中值为x的数据元素 i..

2020-09-02 00:02:04 272

原创 空间复杂度为O(1)的条件下将顺序表逆置

问题描述:设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)。算法基本设计思想: 扫描顺序表L中的前半部分元素,对于元素L.data[i](0<=i<L.length/2),将其与后半部分的对应元素L.data[L.length-i-1]进行交换。【注】这里L.data[L.length-i-1]使用举例子找规律方法得到,例如L.data[0]需要与L.data[L.length-0-1]交换,L.data[1]需要与L.data[L.length-1-1]交换.

2020-09-01 23:37:00 175

原创 删除顺序表中最小值的元素并用最后一个元素填补

问题描述:从顺序表中删除具有最小值的元素(假设唯一)并由函数放回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。算法基本设计思想:搜索整个顺序表,查找最小值元素并记住其位置,搜索结束后用最后一个元素填补空出的原最小值得位置。代码:【注】引用的函数是在 "线性表的顺序表示和实现.cpp"中已经实现了的线性表基本操作,链接如下:https://blog.csdn.net/Dear_Jia/article/details/108297555#include..

2020-09-01 00:52:06 183

原创 线性表在顺序表示下基本操作的实现

此基本操作的实现中使用的是静态分配存储结构#include<stdio.h>/*---------顺序表的动态分配存储结构--------*/ #define List_Init_Size 100 //线性表存储空间的初始分配值#define ListIncrement 10 //线性表存储空间的分配增量typedef int ElemType;typedef struct{ ElemType *elem; //存储空间基址 int length; //线性表当前长度

2020-08-29 17:57:57 93

原创 Linux中根目录/和home的区别

CentOS中home文件在桌面上(如下图),起初不是太明白home个和根目录文件的区别但是其实home也是根目录/下的一个文件夹,就如同windows下的C盘和“我的文档”一样,其实在Linux中的/home文件夹中有一个文件夹是你自己的各类文件,点开会发现和桌面Home文件中的内容相同...

2019-04-06 22:04:24 4387

原创 Microsoft Office 2010撤销(Ctrl+Z)无法使用

解决办法:关闭所有的Word,然后重新打开。如果不可以的话可以也可以参考https://jingyan.baidu.com/article/a948d6510e4ef00a2dcd2e16.html

2019-01-01 15:49:59 2008

原创 计算机算法设计与分析课本(王晓东著)课后算法实现题1-3 最多约数问题

问题描述: 正整数x的约数是能整除x的正整数。正整数x的约数个数记为div(x)。例如,1 2 5 10都是10的约数,且div(10)=4。设a和b是2个正整数,a&amp;amp;lt;=b,找出a和b之间约数个数最多的数x。算法设计: 对于给定的2个正整数a&amp;amp;lt;=b,计算a和b之间约数个数最多的数。数据的输入与输出: 输入文件示例 输出文件示例1 36 ...

2018-12-16 19:21:52 1535 1

原创 变步长梯形积分算法求解函数定积分

算法基本原理:把原区间分为一系列小期间(n份),在每个小区间上都用小的梯形面积来近似代替原函数的积分,当小区间足够小时,就可以得到原来积分的近似值。但是这个过程中有一个问题是步长的取值,步长太大精度难以保证,步长太小会导致计算量的增加,所以,实际计算中常常采用变步长的方法,使得在步长逐次减小的过程中,求得的积分结果满足要求的精度为止。       首先,给出两个计算公式          ...

2018-12-09 11:54:16 3130

原创 高斯消去法解线性方程组C++实现

       一.问题分析:高斯消去法解线性方程组主要面对的问题是矩阵的运算,所以可以定义一个矩阵类Matrix类作为基类,然后由矩阵类Matrix类派生出一个线性方程组类LinearEqu类。       二.矩阵功能分析:(1)Matrix类处理n*n的方阵,方阵用一个一维数组存放,矩阵类Matrix的数据成员包括数组的首地址和矩阵长度n,函数成员有设置矩阵的值setMatrix()和显示...

2018-12-02 17:29:11 3518 2

原创 无法解析的外部符号 "public: __thiscall

错误    2    error LNK2019: 无法解析的外部符号 "public: __thiscall Rectangle::~Rectangle(void)" (??1Rectangle@@QAE@XZ),该符号在函数 "public: __thiscall Square::~Square(void)" (??1Square@@QAE@XZ) 中被引用原因:函数这是只是声明了却没有定...

2018-12-02 11:13:42 3675

原创 VS写C++程序时候cout不明确

今天写C++程序时候突然出现一个cout不明确的错误,想着可能是VS没有反应过来吧,然后就把using namespace std删除了又重新写上,然后……emmm……竟然对了,有大佬知道真正的原因吗...

2018-11-21 19:37:20 6202 4

原创 C++中指针访问二维数组

学习C++时候关于指针数组的几个概念有些迷,搞清楚后写篇博客梳理一下1.系统在编译数组和下标时会将其编译为*(数组名+下标),其中下标为数组元素的长度2.系统在处理二维数组的时候将其看为数组元素为一维数组的一维数组#include&lt;iostream&gt;using namespace std; int main(){ int arr[3][3] = { { 11, 12,...

2018-11-18 14:58:09 1240

原创 一个项目中不能同时出现两个main函数

 在写两个短程序的时候想着把两个cpp文件放到同一个项目中比较省空间,然后就出现了下面的问题:main函数已经定义过,然后将项目中的一个含有main函数的cpp文件删除之后再运行,可以运行原因大概是main函数是程序的入口,一个项目中只能有一个如果觉得建立多个主函数麻烦的话可以选择在同一个解决方案下建立多个项目 首先,右击解决方案---&gt;添加---&gt;新建项目...

2018-11-11 18:58:47 8016

原创 VS 2013新建一个C++程序

学习C++,之前一直用Dev C++编写程序,最近学习到多文件结构时候发现VS比较好用,不得不说VS的功能实在强大,学习新建一个C++程序,然后编译连接就花了好长时间,所以想写一篇博文记录一下以供日后查看1.首先,文件---&gt;新建---&gt;项目 2.跳出下边的窗口,选择Visual C++中的空项目(自我感觉新手还是建一个空项目比较稳妥),然后修改下方的名称,位置后确定...

2018-11-09 11:49:14 2646

原创 VS 2013程序点击Ctrl+F5执行出现执行窗口闪退现象的解决方法

用VS2013建立一个C++空项目的时候会出现执行窗口闪退的现象,百度一下找到解决方案1.首先,右击解决方案下项目名称,选择属性2.在链接器---&gt;系统中找到子系统,将子系统选择成控制台,  3.然后点击Ctrl+F5,就可以运行了备注:如果刚开始就建立了win32控制台程序,那子系统中就会自动是控制台了...

2018-11-09 11:46:40 1131

原创 Visual studio 2013安装包

链接:https://pan.baidu.com/s/1DHM_7FVds4NOmSJJgdgoKg 提取码:vd40 

2018-11-09 09:51:12 1791

转载 MATLAB R2017b安装及破解

安装包网盘链接:https://pan.baidu.com/s/1zdsx24Er9UFbCWBuAcKOyg 提取码:mrtq 打开安装包后,第一步为解压安装文件,找到文件安装包里的dvd1和dvd2,格式为iso,同时解压。或解压dvd1,安装到一半会显示请插入dvd2,这时再点击dvd2。两者效果一样。但不可只解压dvd1。解压大概会持续十几分钟的时间解压完成后会自动弹...

2018-11-07 10:49:43 2697 5

原创 计算两个日期之间相隔的天数

/******************************************************* 程序内容:计算从一个日期到另一个日期一共经历的天数*******************************************************/#include&lt;iostream&gt;using namespace std;int isprim...

2018-10-29 17:44:05 953

原创 字典序问题(算法课本课后实现题1-2)

题目描述:       在数据加密和数据压缩中常需要对特殊的字符串进行编码.给定的字母表A由26个小写英文字母组成,即A={a,b...z}.该字母表产生的升序字符串是指定字符串中字母从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1次.例如,a,b,ab,bc,xyz,等字符串是升序字符串.现在对字母表A产生的所有长度不超过6的升序字符串按照字典序排列并编码如下  ...

2018-10-14 10:13:37 1593 1

原创 统计数字问题(10^9的大数)

问题描述:一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排, 每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数 字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1, 2,…,9。数据输入:每个文件只有一行,给出表示书的总页码的整数n(1&lt;=)数据输出:输出文件共10行,在第k(k=1,...

2018-10-10 13:08:40 244

原创 为什么memset函数不能初始化int函数

memset函数是以字节为单位赋值的,int是四个字节,所以给int初始化还用memset就会出错,看下实验吧首先,下边这个是给字符型数组赋值,因为字符型数组每个元素都占一字节,所以可以争取的输出数组元素#include&lt;stdio.h&gt;#include&lt;string.h&gt;int main(){ char arr[5]; memset(arr,'1',si...

2018-08-23 17:12:44 425

原创 Bellman-Ford算法

 Dijkstra算法没办法处理带有负权的图,所以这时候就需要Bellman-Ford算法了,在假设途中没有负权回路(回路的权值和为负,即回路中负权的值大于其他几遍的权值和)可以采用Bellman-Ford算法,但是该算法的时间复杂度为O(V*E),效率较低1.初始化:将除源点外的所有顶点的最短距离估计值 d[v] ——&gt;+∞, d[s]——&gt;0;2.迭代求解:反复对边集E...

2018-08-20 14:41:10 111

原创 Dijkstra,Floyd,Bellman-Ford,SPFA算法的比较

都是求最短路径,但是有一些差别Dijkstra算法:是求不含负权图的单源最短路径的一种算法,效率较高Floyd算法:相对于Dijkstra算法,Floyd-Warshall算法是可以找到所有顶点对之间的最短路径的长度(多源,每一对顶点之间)。Bellman-Ford算法:Dijkstra算法不能处理含有负权,所以遇到负权边时候就得用Bellman-Ford算法来求,Bellman-Fo...

2018-08-19 17:34:31 428

原创 字符的字符输出和整型输出

这个问题可以说是很基础了,但是今天写程序的时候竟然迷了字符在计算机中也是二进制存储的,所以输出字符型数据是输出字符本身,而输出%d类型是输出字符的ascll码,贴下实验代码#include&lt;stdio.h&gt;int main(){ char a='a'; printf("%c %d\n",a,a); return 0;}...

2018-08-13 20:32:11 1695

原创 函数的定义和声明

函数的声明一般是放在头文件(.h)中的,然后在.c文件中定义函数

2018-08-13 11:09:54 121

转载 srand((unsigned)time(NULL))详解

srand函数是随机数发生器的初始化函数。原型:void srand(unsigned seed);用法:它初始化随机种子,会提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数,如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00:0...

2018-08-09 17:13:53 439

转载 error: expected ';', ',' or ')' before '&' token 解决方法

近期发现很多同学用codeblocks编译的时候会出现 ‘error: expected ';', ',' or ')' before '&amp;' token’ 这个错误提示,很多同学很不解,明明就没有错呀,为什么呢?其实这就是C语言的一个知识点:在C语言中是不存在引用的,也就是说C语言中&amp;表示的不是引用,仅仅是取地址符。所以错误提示就是告诉你&amp;在这里用的不对,那怎么解...

2018-08-03 21:31:38 3747 2

转载 C++ 值传递、指针传递、引用传递详解

转:http://www.cnblogs.com/yanlingyin/而关于值传递,指针传递,引用传递这几个方面还会存在误区, 所有我觉的有必要在这里也说明一下~下文会通过例子详细说明哦值传递:形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参-&gt;形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改...

2018-08-03 20:14:29 103

转载 引用传参和指针传参的差别.

在C++中,如果函数的实参的类型是数据类型比较大的数据类型,这是如果使用一般传参就会有很大的不方便,这是如果能够传递一个地址或者是对原来参数的一个引用对提高性能会有很大的帮助。         本文研究一下引用传参和指针传参的区别和联系。其实引用传参和指针传参都能够在条用函数内部对源数据进行修改,这是它们的共同点,但是它们也是有区别的。下面是一个例子:#include &lt;iostr...

2018-08-03 11:23:08 815

转载 #ifndef的用法

作用:防止头文件的重复包含和编译 定义  #ifndef x  #define x  ...  #endif  这是宏定义的一种,它可以根据是否已经定义了一个变量来进行分支选择,一般用于调试等等.实际上确切的说这应该是预处理功能中三种(宏定义,文件包含和条件编译)中的一种----条件编译。 C语言在对程序进行编译时,会先根据预处理命令进行“预处理”。C语言编译系统包括预...

2018-07-28 19:43:38 123

转载 C语言中读取相对路径

在C语言实践中,我们经常需要读取与当前程序文件在同一根目录下的其它文件或文件夹中的内容,这就需要用到相对路径。C语言中的相对路径“相对”麻烦,现举例如下:    假设程序源代码文件在C:\code\practise\路径下,我们需要读取C:\code\practise\text\文件夹中的文件0.txt,怎样设置相对路径呢?    正确答案为“.\\text\\0.txt”    前面...

2018-07-28 10:57:49 1456

原创 CFree 5使用方法

之前一直用Dev C++,后来因为要实现数据结构,所以下载了CFree 5,下载链接http://pan.baidu.com/s/1jGMUlQQ然后先新建,还是用万能hello world做示例 之后在“文件”里点击“另存为…”将会保存为.cpp文件,然后编辑成.O文件,连接成为.EXE文件...

2018-07-27 16:10:09 5480

原创 office 2010安装

链接:https://pan.baidu.com/s/11bEvYA3z0WM0hplj8CKcCQ 密码:4fnj安装教程也在

2018-07-10 21:15:34 1673

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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