CS 朝花夕拾
文章平均质量分 69
打工人小飞
公众号:机器修行
展开
-
操作系统与网络知识点梳理
1.死锁产生的原因与避免死锁的方法死锁概念:多个线程因竞争资源而造成的一种僵局(互相等待)状态。 产生死锁的四个条件: (1)互斥条件:资源只能由一个进程使用; (2)请求与保持条件:已经得到资源的进程可以再次申请新的资源; (3)非剥夺条件:已经分配的资源不能从相应的进程中被强制地剥夺; (4)循环等待条件:系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。 ...原创 2018-09-12 10:02:34 · 803 阅读 · 0 评论 -
HTTP 状态码回顾总结
HTTP状态码,它是用以表示网页服务器HTTP响应状态的3位数字代码。状态码的第一个数字代表了响应的五种状态之一。 Tables Are Cool 1XX Informational(信息性状态码) 接收的请求正在处理 2XX Success(成功状态码) 请求正常处理完毕 3XX 重定向状态码 需要进行附加操作以完成请求...原创 2018-09-07 10:02:21 · 382 阅读 · 0 评论 -
从输入URL到页面展示到底发生了什么?
这是一个老生常谈的问题,笔者今天对这个问题进行一个总结。整个过程可分为4个步骤,分别如下所示:1. 域名解析当我们在浏览器的输入框中输入网址的时候,浏览器其实已经在智能地匹配可能的URL了,它会从历史或者书签等地方查找可能对应的URL,给出一些智能提示,方便智能补全,部分浏览器甚至会直接从缓存中把网页显示出来。请求一旦发起,浏览器首先要做的事情就是解析这个域名,即找到对应的 IP。...原创 2018-08-24 15:41:39 · 1107 阅读 · 0 评论 -
C++ 知识点梳理
new/delete 与 malloc/free的区别malloc/free是标准库函数,new/delete是C++运算符。运算符是语言本身的特性,有固定的语义,由编译器解释语义。库函数是依赖于库的,一定程度上独立于语言,编译器不关心库函数的作用。delete会调用对象的析构函数, free只会释放内存,new调用构造函数。malloc/free是库函数而不是运算符,不在编译器控制权限之...原创 2018-08-22 17:58:10 · 1306 阅读 · 1 评论 -
进程与线程相关知识整理
进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立...原创 2018-08-16 14:25:33 · 595 阅读 · 0 评论 -
二叉树的相关操作回顾(C++实现)
二叉树的初始化思路: 使用队列,队首出队一个元素队末进两个元素,而这两个元素正好是这个队首元素的左右节点。比如我们给定这样的一组数据:{1, 2, 3, 4, 5, 0, 6, 0, 7, 8, 9} (假设0代表空),则可构建二叉树如下: 整个建树以及遍历过程,在这里不细说,该篇博客主要是对数据结构中二叉树的相关具体实现做回顾与备忘。废话不多说,直接上代码:#include <iostream原创 2018-04-04 21:43:57 · 607 阅读 · 2 评论 -
内排序算法之 —— 基数排序
基数排序是一种常见的算法,虽然在各个数据结构教材中都能看到,但在面试或笔试中却很少遇到,本篇博客简要讲解基数排序的算法原理和效率。基数排序不同于其他的排序算法,它不是基于比较的算法。基数排序是一种借助多关键字排序的思想对单逻辑关键字进行排序的方法。它是一种稳定的排序算法。多关键字排序中有两种方法:最高位优先法(MSD)和最低位优先法(LSD)。通常用于对数的排序选择的是最低位优先法,即先对最次位关键原创 2018-02-24 18:41:59 · 1117 阅读 · 0 评论 -
内排序算法之 —— 归并排序
归并排序的基本思想是:首先,将 R[0..n-1] 看成是 n 个长度为1的有序表,将相邻的有序表成对归并,得到n/2个长度为2的有序表;然后,再将这些有序表成对归并,得到n/4个长度为4的有序表,如此反复进行下去,最后得到一个长度为n的有序表。这里引用另一位博主的解析图: C++代码示例:void Merge(vector<int> R, int low, int mid, int high)原创 2018-02-24 17:25:53 · 404 阅读 · 0 评论 -
内排序算法之 —— 交换排序
交换排序的基本方法是:两两比较待排序元素的关键字,并交换不满足次序要求的那些偶对,直到全部满足为止。本次介绍冒泡排序和快速排序。冒泡排序冒泡排序的算法思想是:通过无序区中相邻元素关键字间的比较和位置的交换,使关键字最小的元素如气泡一般逐渐往上“漂浮”直至“水面”。整个算法是从最右边的元素开始,对每两个相邻元素的关键字进行比较,且使关键字较小的元素换至关键字较大的元素之上,使得经过一趟排序后,关键字最原创 2018-02-24 11:57:27 · 406 阅读 · 0 评论 -
内排序算法之 —— 选择排序
选择排序的基本方法是:每步从待排序的元素中选出关键字最小的元素,顺序放在已排序的元素序列的最后,直到全部排完为止。本次介绍简单选择排序和堆排序。简单选择排序简单选择排序的过程是:假设元素存放在 R[0..n−1]R[0..n-1] 之中,其中 R[0..i−1]R[0..i-1] 是有序区,R[i..n−1]R[i..n-1] 是无序区,且有序区的所有关键字均小于无序区的所有关键字。需将 R[i]R原创 2018-02-17 19:12:42 · 368 阅读 · 0 评论 -
内排序算法之 —— 插入排序
这几天开始整理总结一下几个内排序算法。插入排序的基本思想是:每一趟将一个待排序的元素,按其关键字值的大小插入到已经排序的部分文件中的适当位置上,直到全部插入完成。本次介绍两种插入排序算法,即直接插入排序与希尔排序。直接插入排序直接插入排序是一种最简单的排序算法,其过程是依次将每个元素插入到一个有序的序列中去。假设元素放在 R[0…n-1] 之中,R[0…i-1] 是已排好序的元素区(简称有序区,初始原创 2018-02-07 17:12:02 · 843 阅读 · 0 评论 -
TCP 与 UDP 对比,以及 TCP 的三次握手与四次挥手
首先是对两个概念的简要说明: TCP(Transmission Control Protocol):传输控制协议; UDP(User Datagram Protocol):用户数据报协议。TCP 与 UDP 相同点TCP 和 UDP 都是在网络层,都是传输层协议,都能保护网络层的传输,双方的通信都需要开放端口。TCP 与 UDP 不同点TCP 是面向连接的协议,UDP 是无连接协议; TCP原创 2017-10-24 18:57:45 · 1102 阅读 · 0 评论 -
网络拍卖系统的设计
网络拍卖系统的设计1 概述1.1 设计题目本次课程设计的题目为网络拍卖系统的设计。网络拍卖指网络服务商利用互联网通信传输技术,向商品所有者或某些权益所有人提供有偿或无偿使用的互联网技术平台,让商品所有者或某些权益所有人在其平台上独立开展以竞价,议价方式为主的在线交易模式。在线拍卖系统的出现与技术的发展和人们购物意识增强有很大的关系,拍卖系统本身所具有的优势和良好的购物体验,使得人们对它原创 2015-07-25 10:28:13 · 26950 阅读 · 5 评论 -
软件需求分析
一、需求获取1、确定需求开发计划 对于就读于计算机相关专业以及对程序设计感兴趣的同学及毕业生,寻找到一个能够检测或是提高自己编程能力的平台,是一件令人振奋的事情。平时在日常学习中,能够有这样一个平台来激励自己,作为自己的编程导师,是我等梦寐以求的。这个系统平台旨在帮助提高同学们的编程能力,也可提高编程思想以及编程理念,更可以给同学们提供一个学术讨论的圣地,让编程不再枯燥,让学习更加有原创 2015-07-25 10:06:32 · 4163 阅读 · 0 评论 -
软件项目质量管理
摘要本文通过中国郎中看病这个案例进而类比软件项目质量管理,对软件项目质量管理的论述和分析,并对改善软件质量的各个因素进行了讨论,最后对软件项目质量管理的现状进行分析,并对对其发展趋势进行展望。通过对中国郎中看病的故事,我们给了软件项目质量管理一个通俗的解释和分析,分别用大儿子、二儿子以及三儿子类比软件项目管理过程中的各个角色和阶段。通过对软件质量的各种定义将“质量”这个词作了详尽分析,在以原创 2015-07-25 09:54:37 · 10664 阅读 · 0 评论