显然,当有序线性表为顺序存储时都能采用二分查找,并且,二分查找的效率要比顺序查找高得多 。可以证明,对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次 。
1.8排充技术
1.8.1交换类排序法 (P34—P35)
1.冒泡排序法
冒泡排序法是一种最简单的交换类排序方法 。
假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为n(n-1)/2 。
2.快速排序法
快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此称之为快速排序法 。
1.8.2插入类排序法 (P35—P37)
1.简单插入排序法
自以为插入排序,是指将无序序列中的各元素依次插入到已经有序的线性表中 。
在简单插入排序法中,这种排序方法的效率与冒泡排序法相同 。在最坏情况下,证券交易插入排序需要n(n-1)/2次比较 。
2.希尔排序法
希尔排序法属于插入类排序,但它对简单插入排序做了较大的改进 。
1.8.3选择类排序法 (P37—P38)
1.简单选择排序法
从中选出最小的元素,将它交换到表的最前面 。
简单选择排序法在最坏情况下需要比较n(n-2)/2次 。
2.堆排序法
堆排序法属于选择类的排序方法 。
堆排序的方法对于规模较小的线性表并不合适,但对于较大规模的来说是很有效的 。
分享到搜狐微博
第2章 程序设计基础 (P40—P45)
2.1程序设计方法与风格
程序设计的风格总体而言应该强调简单和清晰,程序必须是可以理解的 。可以认为,著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格 。
源程序文档化应考虑如下几点:
(1)符号名的命名:符号名的命名应具有一定的实际含义,以便于对程序功能的理解 。
(2)程序注释:正确的注释能够帮助读者理解程序 。注释一般分为序言性注释和功能性注释 。
(3)视觉组织:为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰 。
2.2结构化程序设计
2.2.1结构化程序设计的原则 (P41—P42)
结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto语句 。
2.2.2结构化程序的基本结构与特点 (P42—P43)
1.顺序结构
2.选择结构:选择结构又称为分支结构 。
3.重复结构:重复结构又称为循环结构 。
2.3面向对象的程序设计
今天面向对象方法已经发展成为主流的软件开发方法 。
一些著名的面向对象语言(如C++、Java)
2.3.2面向对象方法的基本概念 (P45—P48)
1.对象
对象是面向对象方法中最基本的概念 。对象可以用来表示客观世界中的任何实体 。
面向对象的程序设计方法中涉及的对象由一组表示其静态特征的属性和它可执行的一组操作组成 。
(4)封装性 。
2.类(Class)和实例(Instance)
将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法方法的对象的集合 。所以,类是对象的抽象,而一个对象则是其对应类的一个实例 。
3.消息
对象间的这种相互合作需要一个机制协助进行,这样的机制称为“消息” 。消息是一个实例与另一个实例之间传递的信息 。
4.继承
继承是面向对象的方法的一个主要特征 。
第3 章 软件工程基础
3.1软件工程基本概念
3.1.1软件定义与软件特点 (P50)
计算机软件是包括程序、数据及相关文档的完整集合 。
可见软件由两部分组成:一是机器可执行和程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档 。
推荐阅读
- 节拍器下载,架子鼓节拍器下载
- flutter打包手机打不开,flutter打包ios并上架
- 电脑连接硬盘怎么连,电脑硬盘的连接
- mysql消耗过大怎么办 mysql耗cpu
- Python中个标点符号作用,python中标点符号的用法
- 直播加加为什么卡,直播加加直播有声音吗
- 游戏革命开发,革命时代游戏
- php原生语句查询数据库 php原生类
- mongodb索引慢,mongo索引调优