1 | #include<stdio.h> |
Merge
算法作用:一个数组a[0,…,p…,q…,r,…],其中子数组a[p,..,q]和a[q+1,…,r]两个数组是升序的数组,通过merge算法将这两个数组合并变成一个升序的数组。
算法思想:将b[]矩阵作为缓冲矩阵,用s,t指向这两个子数组的首元素,然后一次循环比较两个数组的元素大小,将较小的元素赋值给数组b[],直到两个子数组中的其中一个遍历完全。然后把未遍历完的子数组元素赋值给b[]。最后将b[]赋值给a[]。
注意事项:
- “ = =” 与“ = ” 号的区别!!!“ && ” 和“ & ”的区别!!!
- 定义一个int型大小为N的数组的时候,例如下面的第7行和第9行,必须声明b为int型的指针,然后指向的位置是一个
(r-p+1)*sizeof(int)
大小的存储空间,注意这个大小的表达方式,写成b = (int*)malloc(sizeof((r-p+1)*int));
这样是不对的! - 数组元素一定是从a[0]开始的,例如下面的例子中如果将12行改为k=p。由于b是一个(r-p+1)大小的数组,所以下面的b标号也就从p开始了,但是前面的0到p-1还是占着b的位置的。所以会造成溢出!
- 注意 ++ 和 = +1的区别!25行到38行的两种表达方式的区别!
- 对于以后要用到的数据,如果用途不同,要采用赋值的方法解决,比如下面的s,t,k的定义。
- 数组作为参数的传递,第4行和第57行的。
1 | #include<stdio.h> |
cmd命令与环境变量生效
Centos下安装ftp
电脑硬件知识
易混单词
ubuntu实体机安装及其基础知识
前言:
实体机相对于虚拟机而言有自己独特的优势,例如性能更好之类的,于是我们就又写了一篇关于实体机的安装经验。并在文章的结尾加上了原理篇,可能由于笔者水平,写的并不是太好懂,但是这是笔者从许多论坛、电脑杂志、书籍总结出来的经验。遇到安装问题,可以参考着原理去找原因。如果问题还没有解决,欢迎留言。
准备工具:
- ubuntu系统
- 大于4G可被格式化的U盘一只
- 电脑
- rufus烧录软件。官网地址:http://rufus.akeo.ie/
第一步:烧录ubuntu系统。
插上U盘,打开rufus软件,如下图所示,设备选择自己的U盘,。为了保证可以从uefi启动,这里的文件系统选择FAT或者FAT32,其他的保持默认。