Home
Jeremy's Blog
Cancel

插入排序 Insertion Sort

插入排序简介 插入排序的基本思想是,把 n 个待排序的元素看成一个有序表和一个无序表。 开始时,有序表中只包含一个元素,无序表中则包含 n-1 个元素。 排序过程中每次从无序表中取出第一个元素,将它插入到有序表中适当的位置,使之成为新的有序表。 只要重复 n-1 次,即可完成排序过程。 插入排序实现 下面选取插入排序的一个中间过程对其进行说明。 假设 {20,30,40...

快速排序 Quick Sort

快速排序简介 快速排序的基本思想是,选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分。 其中一部分的所有数据都比另外一部分的所有数据都要小。随后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序数列。 快速排序实现 首先,从数列中挑一个基准值,并将所有比基准值小的摆放在基准前面,所有比基准值大的都摆在基准后面。在这个分区...

冒泡排序 Bubble Sort

冒泡排序简介 冒泡排序是一种比较简单的排序算法。 它会遍历若干次要排序的数列。每次遍历时,它都会由前往后依次比较相邻两个数的大小。 若前者比后者大,则交换他们的位置。这样在一次遍历后,最大的元素就在数列的末尾了。 采用相同的方法再次遍历时,第二大的元素将被排列在最大元素之前。 重复此操作,直到整个数列都有序为止。 冒泡排序实现 下面以数列 a = {20, 40, 30...

IPv6 协议

随着 Internet 的快速发展,IPv4 已经不适用了。 其有 IP 地址空间耗尽问题、安全性问题以及服务质量问题等。 解决 IP 地址耗尽问题的措施如下: 采用无类别编址 CIDR,使 IP 地址的分配更加合理 采用网络地址转换 NAT 方法以节省全球 IP 地址 采用具有更大地址空间的新版本 IP 协议 IPv6 IETF 于 1992 年提出了推出下一代 I...

应用层 Application Layer

应用层协议是为了解决某一类应用的问题。由于网络应用的多样性,应用层的协议也种类繁多。 应用层的许多协议都是基于客户/服务器方式,其描述的是进程之间服务和被服务的关系。客户 (client) 和服务器 (server) 都是指通信中所涉及的两个应用进程。 这里主要的特征是:客户是服务请求方,而服务器则是服务提供方。 套接字编程接口 套接字 (socket) 是最常用的应用层编程接口...

传输层 Transport Layer

传输层协议概述 传输层 (Transport layer) 又称运输层。传输层向它上面的应用层提供通信服务,即实现可靠传输,其中包括差错控制、顺序控制、拥塞控制等。 网络层实现主机之间的逻辑通信。而传输层则实现应用进程之间的逻辑通信,实现真正的端到端通信,即应用进程之间的通信。 在一台主机中经常有多个应用进程同时分别和另一台主机中的多个应用进程通信。这表明传输层有一个很重要的功能,...

网络层 Network Layer

网络层提供的两种服务 网络层应该向运输层提供这样的服务,曾引起了长期的争论。 争论焦点的实质是:数据的可靠传输应该由网络还是端系统来负责? 面向连接 面向连接的服务,即虚电路 (virtual circuit)。虚电路只是一种逻辑连接,分组沿着这条逻辑连接按照存储转发方式传送,而非真正建立一条物理连接。在两台计算机进行通信时,先由网络建立连接,之后的数据均通过该连接进行,由网络保...

数据链路层 Data Link Layer

数据链路层设计要点 数据链路层属于计算机网络的底层。 物理层实现了比特流的传输,数据链路层在其基础上实现了帧 (frame) 的传输。 数据链路层传输的协议数据单元 (Protocol Data Unit, PDU) 是帧。数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。 数据链路层使用的信道类型 点对点信道 这种信道使用一对一的...

物理层 Physical Layer

物理层的基本概念 物理层主要任务为确定与传输媒体的接口有关的一些特性,像是: 机械特性 — 接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等 电气特性 — 接口电缆的各条线上出现的电压的范围 功能特性 — 某条线上出现的某一电平的电压的意义 过程特性 — 对于不同功能的各种可能事件的出现顺序 数据通信的基础知识 信道 (Channel) 一般表示向某一方向传...

计算机网络概述

计算机网络的定义 计算机网络是一些互相连接的、自治(一个计算机网络连接多台计算机,但各自独立工作)的计算机的集合。其功能主要体现在连通性、资源共享。 计算机网络与分布式系统 分布式系统是建立在网络之上的软件系统。在分布式系统中,一组独立的计算机协同完成一个工作,展现给用户的是一个统一的整体,就像一个系统一样。而计算机网络则没有这种统一性。 计算机网络的分类 计算机网络的...