只是照着视频的内容对代码进行测试,没想到由于将div错写成span标签,引发出了这么多问题。算是意外收获了呢
莫问野人生计事,窗前流水枕前书
No results found
本文由我一边看网上的nextjs的资源(原文网址:https://segmentfault.com/a/1190000010311978),
一边根据自己的实际操作验证写成。
本文由我一边看菜鸟教程中的html教程(原文网址:https://segmentfault.com/a/1190000010311978), 一边根据自己的实际操作验证写成。其中包括一些我觉得可能需要注意的点,以及在实际操作之后总结的一些经验。
祭奠我那为了工作看了两页的《ThinkinJava》,做java的朋友说你一个初学者不适合看这种,多敲敲代码就好,于是就这样夭折了。不过不得不说,其实我觉得这本书写的真的挺好的。对于思想上的转变真的很有帮助。
参考网址: http://www.cnblogs.com/qyaizs/articles/2039101.html
指向结构体类型变量的使用1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17定义结构体:
struct stu{
char name[20];
long number;
float score[4];
};
//再定义指向结构体类型变量的指针变量
struct stu *p1, *p2;
//定义指针变量p1、p2,分别指向结构体类型变量。
引用形式为:指针变量→成员;
或者是指针变量.成员
typedef struct{
char name[20];
long number;
float score[4];
}Stu;
//typedef(type define)在这里的作用是为结构体起了一个名为Stu的别名,当我们再次定义变量的时候,就可以直接使用Stu来定义了。
C语言中没有status这个关键字.但一般写程序时,会定义这样的一个类型,用来表示成功或失败状态.如:0表示成功,-1表示失败。这样status就可以定义成int类型,然后用它去定义变量或函数返回值类型。其实上面也已经提到过,typedef有重命名的意思,也就是说这一句话也可以表示又重新定义了一个变量表示int这种数据类型,然后这种数据类型可以专门用来表示状态。
1 | (分配类型*)malloc(分配元素个数*sizeof(分配类型)) |
是否稳定由排序算法决定
。假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。线性表的顺序存储结构
1 | #define MAXSIZE 10///* 用于要排序数组个数最大值,可根据需要修改 */ |
swap函数
1 | /* 交换L中数组r的下标为i和j的值 */ |
依次比较相邻两个数据的大小,如果右边的数据比左边的数据小,那么交换两个数的位置,我想叫冒泡排序的原因就是因为本来大的数从原本队列中冒出到前面。
⚠️⚠️⚠️在方法二和方法三中,j的条件是j>=
i,这样做的目的是在每次循环遍历排序的时候,最小值已经冒泡到了最前端,i的值也在不断变化着,所以j并不需要对i左边的数据进行比较和排序。
方法一并不满足冒泡排序的思想,只是简单的两两交换,虽然达到了排序的目的,但是效率低下。1
2
3
4
5
6
7
8
9
10
11void BubbleSort0(SqList * L){
int i, j;
for (int i = 1; i < L->length; ++i){
for (int j = i+1; j <= L->length; j++){
if (L->r[i]>L->r[j]){
swap(L, i, j);
}
}
}
}
//对于一个数组下标为1-9,那么i的指针依次从1走到8,而j的指针呢,则是从2走到9
方法二冒泡排序最后的小数据不断的网上冒,直到走到适合他的位置。1
2
3
4
5
6
7
8
9
10void BubbleSort1(SqList * L){
int i, j;
for (int i = 1; i < L->length; ++i){
for (int j = L->length-1; j>=i; j--){
if (L->r[j+1]>L->r[j]){
swap(L, i, j);
}
}
}
}
方法三,改进的冒泡排序,增加了对数组某些数据是否已经有序的判断。避免对已经有序的数据进行遍历比较,增加不必要的时间消耗。1
2
3
4
5
6
7
8
9
10
11
12
13void BubbleSort2(SqList * L){
int i, j;
Status flag = true;
for (int i = 1; i < L->length && flag; ++i){
for (int j = L->length-1; j>=i; j--){
flag = false;
if (L->r[j+1]>L->r[j]){
swap(L, i, j);
flag = true;
}
}
}
}
cd \系统盘名称
cd 文件夹名称
如何发布Node模块到NPM社区
如果只是全局的安装了express好像不可以,一定要在项目目录下再安装一次。
Failed at the myresume@0.0.0 start script 'node ./bin/www'.
其实这个指的就是我们的文件夹目录下的www文件,在这里我们可以手动修改端口号的值。从而解决端口号被占用的问题。
安装时请使用npm install -g express
命令,另因express默认安装是最新的版本,已经是4.x.x的版本。而最新express4.0+版本中将命令工具分出来了,所以必须要安装express-generator,执行命令npm install -g express-generator
命令即可。无需配置环境变量等东西。安装完成后,执行express --version
命令,即可看到安装的express的版本号。另外,npm -v
命令并不是查看版本号,而是 -v, --view <engine> add view <engine> support (dust|ejs|hbs|hjs|jade|pug|twig|vash) (defaults to jade)