1、程序员-30 及答案解析(总分:66.00,做题时间:90 分钟)一、单项选择题(总题数:29,分数:66.00)1.以下关于 C/C+程序变量的叙述中,错误的是_。(分数:2.00)A.变量实际上是存储位置的名字B.变量都具有类型属性C.变量必须先声明,然后才能引用D.除了赋值运算,其他运算都不能改变变量的值2._不属于程序的基本控制结构。(分数:1.00)A.顺序结构B.分支结构C.循环结构D.递归结构3.若某无向图具有 n 个顶点、e 条边,则其邻接矩阵中值为 0 的元素个数为_。(分数:3.00)AeB.2eC.n*n-2eD.n-2e4.线性表采用单链表存储结构时,访问表中元素的方式
2、为_。(分数:2.00)A.随机存取B.顺序存取C.索引存取D.散列存取5._不能用矢量图表示。(分数:2.00)A.几何图形B.美术字C.风景照片D.CAD 图6.将声音信号数字化时,_不会影响数字音频数据量。(分数:2.00)A.采样率B.量化精度C.波形编码D.音量放大倍数7.在数据库设计中,E-R 模型常用于_阶段。(分数:2.00)A.需求分析B.概念设计C.逻辑设计D.物理设计8.已知某二叉树的先序遍历序列为 ABCD,中序遍历序列为 BADC,则该二叉树的后序遍历序列为_。(分数:2.00)A.BDCAB.CDBAC.DBCAD.BCDA9.http./ 中的 http 表示_。
3、(分数:1.00)A.域名B.所使用的协议C.访问的主机D.请求查看的文档名10.与八进制数 1706 等值的十六进制数是_。(分数:2.00)A.3C6B.8C6C.F18D.F1C11.声音信号采样时_不会影响数字音频数据量的多少。(分数:2.00)A.采样率B.量化精度C.声道数量D.音量放大倍数12.以下关于哈希表的叙述中,错误的是_。(分数:3.00)A.哈希表中元素的存储位置根据该元素的关键字值计算得到B.哈希表中的元素越多,插入一个新元素时发生冲突的可能性就越小C.哈希表中的元素越多,插入一个新元素时发生冲突的可能性就越大D.哈希表中插入新元素发生冲突时,需要与表中某些元素进行比
4、较13.在编译过程中,进行类型分析和检查是_阶段的一个主要工作。(分数:1.00)A.词法分析B.语法分析C.语义分析D.代码优化14.在面向对象设计时,若系统有交通工具、汽车、卡车和轿车,则_关系最适合用于表示这些类的设计。(分数:2.00)A.继承B.组合C.多态D.覆盖15.数据测量时,对同一对象进行多次测量可能得到多个数值。精确度是指多次所测得的数值彼此接近的程度;准确度是指所测得的数值与真值符合的程度。实际测量时,不可能出现的情况是_。(分数:2.00)A.精确度与准确度都很好B.精确度很好但准确度不好C.精确度与准确度都不好D.准确度很好但精确度不好16.POP3 服务默认的 TC
5、P 端口号是_。(分数:2.00)A.20B.25C.80D.110若用 8 位机器码表示二进制数-111,则原码表示的十六进制形式为_;补码表示的十六进制形式为_。(分数:4.00)A.81B.87C.0FD.FFAF9BF0C.89D.8017.对于二维数组 a16,18,设每个元素占 2 个存储单元,且以列为主序存储,则元素 a4,4相对于数组空间起始地址的偏移量是_个存储单元。(分数:2.00)A.28B.42C.48D.5418.软件测试的原则不包括_。(分数:2.00)A.测试应在软件项目启动后尽早介入B.测试工作应该避免由原开发软件的人或小组承担C.测试应该考虑所有的测试用例,确
6、保测试全面性D.测试应该严格按照测试计划进行,避免测试的随意性19.增强信息意识是对程序员的基本要求。以下叙述中,_是信息意识不强的表现。 对重要信息、特殊信息和异常信息的敏感度不强 所编写的数据处理程序在测试时经常会出现某些错误 缺乏良好的收集信息的习惯,编写文档有困难 许多统计信息被搁置,没有进一步做分析利用(分数:2.00)A.B.C.D._越高,屏幕上图像的闪烁感越小,图像越稳定,视觉效果也越好。当前 PC 机中该指标大多采用_Hz。(分数:4.00)A.分辨率B.显存容量C.刷新频率D.色深A.88B.75C.65D.5520.单链表不具有的特点是_。(分数:2.00)A.插入、删除
7、运算不需要移动元素B.可随机访问链表中的任一元素C.不必事先估计存储空间值D.所需存储空间量与线性表长度成正比在设计白盒测试用例时,_是最弱的覆盖准则。下图至少需要_个测试用例才可以进行路径覆盖。(分数:4.00)A.路径覆盖B.条件覆盖C.判定覆盖D.语句覆盖A.1B.2C.3D.421.MIDI 数据与数字化波形声音数据_。(分数:2.00)A.相同B.不同C.相近D.格式一致22.以下关于程序中函数的定义、调用和声明的叙述中,正确的是_。(分数:2.00)A.函数的定义必须放在该函数的调用之前B.函数的声明必须放在该函数的调用之前C.函数的定义必须放在该函数的声明之前D.函数的声明必须放
8、在该函数的定义之前设有学生关系 Student(学号,姓名,系名,课程号,成绩),则查询至少选修了 4 门课程的学生学号、姓名及平均成绩的 SELECT 语句为: SELECT 学号,姓名,_ FROM Student CROUP BY _ HAVING _(分数:6.00)A.SUM(成绩)B.AVG(SUM(成绩)C.AVG(成绩)AT 平均成绩D.AVG(成绩)AS 平均成绩A.学号B.姓名C.系名D.课程号A.COUNT(DISTINCT 学号)3B.COUNT(课程号)3C.COUNT(DISTINCT 学号)=3D.COUNT(课程号)=323.在结构化设计中,主要根据_进行软件体
9、系结构设计。(分数:2.00)A.数据流图B.实体-关系图C.状态-迁移图D.数据字典24.以下关于奇偶校验的叙述中,正确的是_。(分数:1.00)A.奇校验能够检测出信息传输过程中所有出错的信息位B.偶校验能够检测出信息传输过程中所有出错的信息位C.奇校验能够检测出信息传输过程中一位数据出错的情况,但不能检测出是哪一位错D.偶校验能够检测出信息传输过程中两位数据出错的情况,但不能检测出是哪两位错25._最不适用于处理序列已经正序有序的情况。(分数:2.00)A.冒泡排序B.快速排序C.归并排序D.直接插入排序程序员-30 答案解析(总分:66.00,做题时间:90 分钟)一、单项选择题(总题
10、数:29,分数:66.00)1.以下关于 C/C+程序变量的叙述中,错误的是_。(分数:2.00)A.变量实际上是存储位置的名字B.变量都具有类型属性C.变量必须先声明,然后才能引用D.除了赋值运算,其他运算都不能改变变量的值 解析:解析 本题考查的是 C/C+的编程风格,很显然 D 说法是错误的,改变变量的值不一定要通过赋值运算,比如参数的引用传递等。2._不属于程序的基本控制结构。(分数:1.00)A.顺序结构B.分支结构C.循环结构D.递归结构 解析:解析 程序的基本控制结构有 3 种,分别为顺序结构、分支结构和循环结构。顺序结构用来表示一个计算操作序列,从第一个操作开始,按顺序依次执行
11、后续的操作,直到最后一个操作;选择结构提供了在两种或多种分支中选择其中一个的逻辑;循环结构描述了重复计算的过程,通常由三部分组成:初始化、循环体和循环条件。3.若某无向图具有 n 个顶点、e 条边,则其邻接矩阵中值为 0 的元素个数为_。(分数:3.00)AeB.2eC.n*n-2e D.n-2e解析:解析 邻接矩阵是表示顶点之间相邻关系的矩阵。设 G=(V,E)是一个图,其中 v=v 1 ,v 2 ,v n 。G 的邻接矩阵是一个具有下列性质的 n 阶方阵:对无向图而言,邻接矩阵一定是对称的,而且对角线一定为零,有向图则不一定如此。在无向图中,任一顶点 i 的度为第 i 列所有元素的和,在有
12、向图中顶点i 的出度为第 i 行所有元素的和,而入度为第 i 列所有元素的和。用邻接矩阵法表示图共需要 n2 个空间,由于无向图的邻接矩阵一定具有对称关系,所以扣除对角线为零外,仅需要存储上三角形或下三角形的数据即可,因此仅需要 n(n-1)/2 个空间。从邻接矩阵的定义可分析得出:含有 n 个顶点的图的邻接矩阵是 n2 阶方阵,对无向图而言,邻接矩阵一定是对称的,如果该图无环,则对角线元素为 0,两顶点之间有边相连,相应位置的元素为 1,无边相连为 0,所以其邻接矩阵中值为 0 的元素个数为 n*n-2e,故选择 C。4.线性表采用单链表存储结构时,访问表中元素的方式为_。(分数:2.00)
13、A.随机存取B.顺序存取 C.索引存取D.散列存取解析:解析 线性表采用单链表作为存储结构时,只能顺序地访问元素,而不能对元素进行随机存取,但其优点是插入和删除操作部需要移动元素。5._不能用矢量图表示。(分数:2.00)A.几何图形B.美术字C.风景照片 D.CAD 图解析:解析 矢量图形是用一系列计算机指令来描述和记录的一幅图的内容,即通过指令描述构成一幅图的所有直线、曲线、圆、圆弧、矩形等图元的位置、维数和形状,也可以用更为复杂的形式表示图像中的曲面、光照、材质等效果。矢量图法实质上是用数学的方式(算法和特征)来描述一幅图形图像。 编辑矢量图的软件通常称为绘图软件,如适用于绘制机械图、电
14、路图的 AutoCAD 软件等。风景照片一般使用数码摄像产品拍摄的图像,不能用矢量图表示。6.将声音信号数字化时,_不会影响数字音频数据量。(分数:2.00)A.采样率B.量化精度C.波形编码D.音量放大倍数 解析:解析 本题考查的是影响数字音频质量的技术参数。采样率是指一秒钟时间内采样的次数。量化精度是描述每个采样点样值的二进制位数。波形编码是利用采样和量化过程来表示音频信号的波形,使编码后的音频信号与原始信号波形尽可能匹配。这三个参数都会改变数字音频的数据量。只有音量放大倍数不会改变数字音频数据量。所以答案选 D。7.在数据库设计中,E-R 模型常用于_阶段。(分数:2.00)A.需求分析
15、 B.概念设计C.逻辑设计D.物理设计解析:解析 本题考查的知识点是 E-R 图。E-R 图也即实体一联系图(Entity-Relationship Diagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。E-R 图设计属于数据库设计的需求分析阶段。8.已知某二叉树的先序遍历序列为 ABCD,中序遍历序列为 BADC,则该二叉树的后序遍历序列为_。(分数:2.00)A.BDCA B.CDBAC.DBCAD.BCDA解析:解析 本题中,先序序列为 ABCD,因此 A 是树根结点,中序序列为 BADC,因此 B 是左子树上的结点,C 和 D 是右子树上的结点,且 D 是
16、C 的左孩子。因此,该二叉树的后序遍历序列为 BDCA。9.http./ 中的 http 表示_。(分数:1.00)A.域名B.所使用的协议 C.访问的主机D.请求查看的文档名解析:解析 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是 WWW 客户机与 WWW 服务器之间的应用层传输协议,是一种面向对象的协议。 页面地址 URL 由 3 部分组成:协议类型、主机名和路径及文件名。例如:http:/ 1706 等值的十六进制数是_。(分数:2.00)A.3C6 B.8C6C.F18D.F1C解析:解析 本题考查的是多进制数的互相转换。将八进制数转换为十六进
17、制数时,可以先将八进制数转化为二进制数,再转化为十六进制数。将八进制数 1706 转化为二进制数:001111000110,再将二进制数转换为十六进制数即为 3C6。11.声音信号采样时_不会影响数字音频数据量的多少。(分数:2.00)A.采样率B.量化精度C.声道数量D.音量放大倍数 解析:解析 波形声音信息是一个用来表示声音振幅的数据序列,它是通过对模拟声音按一定间隔采样获得的幅度值,再经过量化和编码后得到的便于计算机存储和处理的数据格式。 未经压缩的数字音频数据传输率可按下式计算:数据传输率(b/s)=采样频率(Hz)量化位数(bit)声道数。数据传输率以每秒比特(b/s)为单位;采样频
18、率以 Hz 为单位;量化以比特(b)为单位。12.以下关于哈希表的叙述中,错误的是_。(分数:3.00)A.哈希表中元素的存储位置根据该元素的关键字值计算得到B.哈希表中的元素越多,插入一个新元素时发生冲突的可能性就越小 C.哈希表中的元素越多,插入一个新元素时发生冲突的可能性就越大D.哈希表中插入新元素发生冲突时,需要与表中某些元素进行比较解析:解析 当选择某个哈希函数后,不同的关键字可能与同一个哈希地址相对应,这种现象称为冲突。哈希表中的元素越多,当插入一个新元素时,哈希地址出现冲突的可能性就越大。13.在编译过程中,进行类型分析和检查是_阶段的一个主要工作。(分数:1.00)A.词法分析
19、B.语法分析C.语义分析 D.代码优化解析:解析 词法分析阶段是编译过程的第一个阶段。词法分析的任务是:从左到右一个字符一个字符地输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词符号(简称单词或符号)。 语法分析的任务是:在词法分析的基础上,根据语言的语法规则(文法规则),把单词符号串分解成各类语法单位,例如, “短语”、“子句”、“句子”(“语句”)、“程序段”和“程序”。通过语法分解,确定整个输入串是否构成一个语法上正确的“程序”。 语义分析阶段主要检查源程序是否包含语义错误,并收集类型信息供后面的代码生成阶段使用,只有语法和语义都正确的源程序才能被翻译成正确的目标代码。
20、语义分析的一个主要工作是进行类型分析和检查。 代码优化的任务是:对前阶段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效(省时间和省空间)的目标代码。14.在面向对象设计时,若系统有交通工具、汽车、卡车和轿车,则_关系最适合用于表示这些类的设计。(分数:2.00)A.继承 B.组合C.多态D.覆盖解析:解析 在面向对象开发方法中,封装是一种信息隐蔽技术,其目的是使对象的使用者和生产者分离,使对象的定义和实现分开。继承是父类和子类之间共享数据和方法的机制。这是类之间的一种关系,在定义和实现一个类时,可以在一个已存在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入
21、若干新的内容。对象收到消息时,要予以响应。不同的对象收到同一消息可以进行不同的响应,产生完全不同的结果,这种现象叫作多态。在设计交通工具与汽车、卡车和轿车类时,使用继承关系最适合。15.数据测量时,对同一对象进行多次测量可能得到多个数值。精确度是指多次所测得的数值彼此接近的程度;准确度是指所测得的数值与真值符合的程度。实际测量时,不可能出现的情况是_。(分数:2.00)A.精确度与准确度都很好B.精确度很好但准确度不好C.精确度与准确度都不好D.准确度很好但精确度不好 解析:解析 本题考查数据处理方面的基础知识。当准确度很好时,测量值都与真值符合得很好,相对应的精确度也很好。16.POP3 服
22、务默认的 TCP 端口号是_。(分数:2.00)A.20B.25C.80D.110 解析:解析 POP3 服务器默认端口为 110,因此答案为 D。若用 8 位机器码表示二进制数-111,则原码表示的十六进制形式为_;补码表示的十六进制形式为_。(分数:4.00)A.81B.87 C.0FD.FF解析:AF9 BF0C.89D.80解析:解析 -111原=10000111=87(十六进制),-111反=11111000,-111补=11111001=F9(十六进制)。17.对于二维数组 a16,18,设每个元素占 2 个存储单元,且以列为主序存储,则元素 a4,4相对于数组空间起始地址的偏移量
23、是_个存储单元。(分数:2.00)A.28B.42 C.48D.54解析:解析 按列存储时,a4,4之前的元素个数为 21(36+3),每个元素占两个存储单元,因此a4,4相对于数组空间起始地址的偏移量是 42。按行存储时,a4,4之前的元素个数为 27(38+3),该元素相对于数组空间起始地址的偏移量是 54。18.软件测试的原则不包括_。(分数:2.00)A.测试应在软件项目启动后尽早介入B.测试工作应该避免由原开发软件的人或小组承担C.测试应该考虑所有的测试用例,确保测试全面性 D.测试应该严格按照测试计划进行,避免测试的随意性解析:解析 本题考查的是软件测试的原则。软件测试的几大原则:
24、软件开发人员即程序员应当避免测试自己的程序,不管是程序员还是开发小组都应当避免测试自己的程序或者本组开发的功能模块。应尽早地、不断地进行软件测试。对测试用例要有正确的态度:第一,测试用例应当由测试输入数据和预期输出结果这两部分组成;第二,在设计测试用例时,不仅要考虑合理的输入条件,更要注意不合理的输入条件。一定要充分注意软件测试中的群集现象。不要以为发现几个错误并且解决这些问题之后,就不需要测试了。反而这里可能是错误群集的地方,对这段程序要重点测试,以提高测试投资的效益。严格执行测试计划,排除测试的随意性,以避免发生疏漏或者重复无效的工作。应当对每一个测试结果进行全面检查。一定要全面地、仔细地
25、检查测试结果,但常常被人们忽略,导致许多错误被遗漏。妥善保存测试用例、测试计划、测试报告和最终分析报告,以备回归测试及维护之用。故选择 C。19.增强信息意识是对程序员的基本要求。以下叙述中,_是信息意识不强的表现。 对重要信息、特殊信息和异常信息的敏感度不强 所编写的数据处理程序在测试时经常会出现某些错误 缺乏良好的收集信息的习惯,编写文档有困难 许多统计信息被搁置,没有进一步做分析利用(分数:2.00)A.B.C. D.解析:解析 增强信息意识是对程序员的基本要求。信息意识不强的主要表现有:对重要信息、特殊信息和异常信息的敏感度不强;缺乏良好的收集信息的习惯,编写文档有困难;许多统计信息被
26、搁置,没有进一步做分析利用等。而所编写的数据处理程序在测试时经常会出现某些错误是程序员在编程中经常出现的问题,不属于信息意识不强的表现。_越高,屏幕上图像的闪烁感越小,图像越稳定,视觉效果也越好。当前 PC 机中该指标大多采用_Hz。(分数:4.00)A.分辨率B.显存容量C.刷新频率 D.色深解析:解析 刷新频率是图像在屏幕上更新的速度,也即屏幕上的图像每秒钟出现的次数,它的单位是赫兹(Hz)。刷新频率越高,屏幕上图像闪烁感就越小,稳定性也就越高,换言之对视力的保护也越好。一般而言人的眼睛不容易察觉 75Hz 以上刷新频率带来的闪烁感,因此最好能将您显示卡的刷新频率调到75Hz 以上。A.8
27、8B.75 C.65D.55解析:20.单链表不具有的特点是_。(分数:2.00)A.插入、删除运算不需要移动元素B.可随机访问链表中的任一元素 C.不必事先估计存储空间值D.所需存储空间量与线性表长度成正比解析:解析 本题考查的是单链表的相关知识。单链表是单向的即他只可以访问下一级链表的指针,而双向链表是在单链表的基础上加上了反向指针。循环链表是闭合的,结构和单链表相似,但是尾指向首。单链表的特点有插入、删除运算不需要移动元素,不必事先估计存储空间值,所需存储空间量与线性表长度成正比。可随机访问链表中的任一元素是顺序表的特点,故选择 B。在设计白盒测试用例时,_是最弱的覆盖准则。下图至少需要
28、_个测试用例才可以进行路径覆盖。(分数:4.00)A.路径覆盖B.条件覆盖C.判定覆盖D.语句覆盖 解析:A.1B.2C.3 D.4解析:解析 从覆盖源程序语句的详尽程度分析,逻辑覆盖标准包括以下不同的覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件组合覆盖、条件组合覆盖和路径覆盖。语句覆盖的含义是:选择足够多的测试数据,使被测程序中每条语句至少执行一次。语句覆盖是最弱的逻辑覆盖。 路径覆盖要求设计足够的测试用例,覆盖程序中所有可能的路径。路径覆盖是最强的逻辑覆盖。从题目所给的图中可以看出,共有 3 条程序路径需要进行测试,至少需要 3 个测试用例才可以进行路径覆盖。21.MIDI 数据与数
29、字化波形声音数据_。(分数:2.00)A.相同B.不同 C.相近D.格式一致解析:解析 本题考查的是多媒体技术。MIDI 数据与数字化波形声音数据是不同的。MIDI 音乐与高保真的波形声音相比,在音质方面还存在着一定的差距,但数据量极少,又易于编辑修改,还可以与波形声音同时播放。22.以下关于程序中函数的定义、调用和声明的叙述中,正确的是_。(分数:2.00)A.函数的定义必须放在该函数的调用之前B.函数的声明必须放在该函数的调用之前 C.函数的定义必须放在该函数的声明之前D.函数的声明必须放在该函数的定义之前解析:解析 在程序中,函数定义是指对函数的完整定义,包括函数首部和函数体,函数调用是
30、指对所定义函数的使用,一个函数只有被调用才能得到执行。函数声明是指函数的定义在后面,而前面需要对它进行调用,这样就需要预先进行声明,以便编洋程序检查调用的合法性。一般来说,函数的声明只是函数首部加上分号即可。函数声明不是必需的,若函数调用在函数定义之后,则无须声明。设有学生关系 Student(学号,姓名,系名,课程号,成绩),则查询至少选修了 4 门课程的学生学号、姓名及平均成绩的 SELECT 语句为: SELECT 学号,姓名,_ FROM Student CROUP BY _ HAVING _(分数:6.00)A.SUM(成绩)B.AVG(SUM(成绩)C.AVG(成绩)AT 平均成绩
31、D.AVG(成绩)AS 平均成绩 解析:A.学号 B.姓名C.系名D.课程号解析:A.COUNT(DISTINCT 学号)3B.COUNT(课程号)3 C.COUNT(DISTINCT 学号)=3D.COUNT(课程号)=3解析:解析 本题考查考生对 SQL 语句的掌握程度。 根据题目的描述,第一处应为满足 SQL 语法的平均成绩,因此此空应填入:AVG(成绩)AS 平均成绩。第二处考查 SQL 的分组字段的选择。由于是针对每个学生进行查询,因此分组字段应选为:学号。第三处考查SQL 的分组条件,分组条件“至少选修了 4 门课程”的表达式为:COUNT(课程号)3。23.在结构化设计中,主要根
32、据_进行软件体系结构设计。(分数:2.00)A.数据流图 B.实体-关系图C.状态-迁移图D.数据字典解析:解析 结构化分析方法是一种面向数据流的需求分析方法,适用于分析大型数据处理系统。结构化分析方法也是一种建模技术,它建立的分析模型的核心是数据字典。围绕该核心有数据流图、实体-关系图(E-R 图)和状态-迁移图这三种图。其中,数据流图描述系统中数据如何被传送或变换,以及描述如何对数据流进行变换的功能,用于功能建模;实体-关系图(E-R 图)描述数据对象及数据对象之间的关系,用于数据建模;状态-迁移图描述系统对外部事件如何响应、如何动作,用于行为建模。24.以下关于奇偶校验的叙述中,正确的是
33、_。(分数:1.00)A.奇校验能够检测出信息传输过程中所有出错的信息位B.偶校验能够检测出信息传输过程中所有出错的信息位C.奇校验能够检测出信息传输过程中一位数据出错的情况,但不能检测出是哪一位错 D.偶校验能够检测出信息传输过程中两位数据出错的情况,但不能检测出是哪两位错解析:解析 奇偶校验是一种简单有效的校验方法。这种方法通过在编码中增加一个校验位来使编码中1 的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为 2。对于奇偶校验,它可以检测代码中奇数位出错的代码,但不能发现偶数位出错的情况,即当合法编码中奇数发生了错误,即编码中的 1 变为 0或 0 变成 1,则该编码中 1 的个
34、数的奇偶性就发生了变化,从而可以发现错误。 奇偶校验能够检测出信息传输过程中的部分误码(1 位误码能检出,2 位及 2 位以上的误码不能检出),但不能纠错。在发现错误后,只能要求重发。25._最不适用于处理序列已经正序有序的情况。(分数:2.00)A.冒泡排序B.快速排序 C.归并排序D.直接插入排序解析:解析 快速排序是对冒泡排序的一种改进。先通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,使得整个序列有序。但是,若初始记录序列按关键字有序或基本有序时,即每次划分都是将序列划分为某一半序列的元素为 0 的情况,此时快速排序将蜕化为冒泡排序,算法的时间复杂度为 O(n2)。