这里写自定义目录标题
本周主要学习了c语言的几个重点和HTTP的部分内容
主要包括,冒泡排序选择排序
HTTP的TCP/IP URL URI HTTP报文内的信息 和HTTP返回状态码
1 冒泡排序
冒泡排序的主要原理,就是把一些数按大小顺序排列。
一般是通过两两比较再 重复 推移的方式进行循环,完成整改数组的比较。
几个注意点
1 移动指针指向数组的位置时,不一定要定义p 可以a【i】i=i+1
2交换两个数的位置 严格交换 temp = a[2] a【2】=a【1】
a【1】=temp 即可
以10个数为例 理论上按照冒泡排序的流程 需比较 45次
但是在写程序的时候,可能容易出错,不妨就比较 9x9次
(只是增大了计算量,但对结果无影响,只是多次重复比较了而已)
对于计算量较小的程序来说是可取的
如关键片段
for(j=100 j<9;j++)
for(i+0;j<9-j:i++)
就是为了减少运算次数
但是在写代码的时候,可能不一定转的过来,如果没写对,很有可能造成程序崩溃,不妨j<9 即可,有利于理解,大量的运算量交给电脑即可。(目前来说,电脑的运算能力是远远大于程序的)
相关代码片段再图片中已经出现,不再加以复述
void bubbleSort (elemType arr[], int len) {
elemType temp;
int i, j;
for (i=0; i<len-1; i++) / 外循环为排序趟数,len个数进行len-1趟 /
for (j=0; j<len-1-i; j++) { / 内循环为每趟比较的次数,第i趟比较len-i次 /
if (arr[j] > arr[j+1]) { / 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
int main (void) {
elemType arr[ARR_LEN] = {3,5,1,-7,4,9,-6,8,10,4};
int len = 10;
int i;
bubbleSort (arr, len);
for (i=0; i<len; i++)
printf ("%d\t", arr[i]);
putchar ('\n');
return 0;
选择排序
如图
二 HTTP图解 学习
总的说首先了解了TCP/IP 整个网络的基础
分为 应用层 传输层 网络层 链路层 4部分
再是 ip协议 Mac ARP dns 握手等等
在图片组已经出现,不再加以复述
几个比较有意思的部分
文件数据从应用层到链路层实际上是在不停增加数据的(封包)
形象的比喻就是快递寄出时 物品先打包,再加目的地再加邮封等等。
而URL和URI 的区别就像是身份证的区别
URI只定义了这个文件 比如说 430xxxxxxxxxxxxxxx
URL定义的同时 还给出了 家庭住址 能找得到这个人
之后学习了HTTP报文的一点点基础知识
报文由
首部:
请求行/状态行
请求/相应 首部字段
通用首部字段
实体首部字段
其他
空行 CR+LF
主体(可选)
构成
其中请求行是重点内容
包括
请求方法/ 请求URI 协议版本
域名
内容实体
请求方法包括
GET POST PUT HEAD DELETE OPPIONS TRACE CONNECT等等
具体用法参考图片
编码:实际上是对数据进行压缩
有 UNV ZIP COMPRESS DEHATE IDENTITY
实体主体分块:分块传输编码
MIME: 多用途因特网邮件拓展。可以把不同类型文件放在一起。
使用时需在首部加上 content-type
内容协商:客户端与服务端就响应资源进行交涉,提供合适的资源
ACCEPT ACCEPT—CHARSET/ENCODING/LANGUAGE/CONTENT-LANGUAGE
服务器协商 客户端协商 透明协商