- http与https的区别
1. http(text transport ) 超文本传输协议——基于传输层的tcp,https 安全套接的http(ssl secure scoket layer),需要用到证书
2. url上的区别: http://,https://
3. 安全,http明文传输,不安全,https加密传输,安全,C向S端发送https()请求,S端返回包含公钥的证书,C端随机生成一个对称密钥,并使用公钥对密钥加密,再将加密后的对称密钥传输给S端,
4. 端口号不同,http的端口号是:80,https是403
5. https协议的作用分为两种:1.确认网站的真实性;2.建立一个信息安全通道
- 手写数据库的连表查询——查询两张表的共同字段并统计
- 排序算法
空间复杂度,时间复杂度
各类排序算法的优缺点,
排序算法 |
平均时间复杂度 |
最好时间复杂度 |
最差时间复杂度 |
空间复杂度 |
稳定性 |
排序方式 |
选择排序 |
1 |
1 |
1 |
1 |
内排 |
|
快速排序 |
1 |
1 |
1 |
1 |
1 |
|
堆排序 |
1 |
1 |
1 |
1 |
1 |
|
冒泡排序 |
O(n^2) |
O(n) |
O(n^2) |
1 |
1 |
|
希尔排序 |
1 |
1 |
1 |
1 |
1 |
|
归并排序 |
1 |
1 |
1 |
1 |
内排 |
|
插入排序 |
1 |
1 |
1 |
1 |
内排 |
|
桶排序 |
1 |
1 |
1 |
1 |
1 |
|
基数排序 |
1 |
1 |
1 |
1 |
内排 |
|
计数排序 |
1 |
1 |
1 |
1 |
|
|
1. 排序的稳定性:a=b,如果在未排序之前a在b之前,则排序后a也在b之前
2. 内排序:整个排序过程都在内存中进行
3. 外排序:由于数据太大,将整个数据放在磁盘中,而排序则是通过磁盘与内存的数据交换完成
4. 常见的快速排序,归并排序,堆排序,冒泡排序属于比较排序,在排序的最终结果里,
元素之间的次序依赖于他们之间的比较,每个数都必须和其他数进行比较
6. 冒泡排序
冒泡排序稳定,因为比较两个相邻的元素,若相等则顺序不变
最优时间复杂度:O(n)——虽然不用交换,但是按常理来还是需要比较n^2次,但在理想条件下,
我们会修改代码(增加一个flag,第一次比较完,就直接退出),
最差时间复杂度:(3n(n-1))/2 这个是在最优时间复杂度为 (n(n-1))/2 的条件下的得来的,
3倍为交换的三个步骤
平均时间复杂度:按照上面的最优和最差,2(n(n-1))
1. 算法实现:
//从小到大,实现过程是不断将大的数往后挪,看似好像把小的数往前移动,其实每一次
移动之后,较小的数就不会参与下一次比较,所以j的取值范围才是
array.length-1-i ,这里的i就是整个比较的轮次,每一轮都会将这一轮参与
比较的最大数移到最后
public static int[] bu