1 数组的应用:
冒泡排序法( bubble sort)
基本思想是通过相邻两个记录之间的比较和交换, 使关键码较小的记录逐渐从底部移向顶部(上升),关键码较大的记录逐渐从顶部移向底部(沉底),冒泡由此得名。
选择排序法( selection sort)
基本思想是第i趟选择排序通过n-i次关键码的比较,从n-i+1个记录中选出关键码最小的记录, 并和第i个记录进行交换。
顺序查找法
基本思想是让关键字与序列中的数逐个比较,直到找出与给定关键字相同的数为止或序列结束,一般应用于无序序列查找。
二分查找法
对于有序序列,可以采用二分查找法进行查找。
2 关于指针:
指针除了能够提高程序的效率,更重要的作用是能使一个函数访问另一个函数的局部变量,因此指针是两个函数进行数据交换必不可少的工具。
一个指针曾经指向一个已知对象,在对象的内存空间释放后,虽然该指针仍是原来的内存地址,但指针所指已是未知对象,称为“ 迷途指针”(dangling pointer)。
指针的运算都是作用在连续存储空间上才有意义。
一个指针变量可以指向只读型对象,称为指向const对象的指针,即在指针变量定义前加const限定符,其含义是不允许通过指针来
改变所指向的const对象的值
把一个const对象的地址赋给一个非const对象的指针变量是错误的
允许把非const对象的地址赋给指向const对象的指针;不能使用指向const对象的指针修改指向对象,然而如果该指针指向的是一个
非const对象,可用其他方法修改其所指的对象。
实际编程中,指向const的指针常用作函数的形参,以此确保传递给函数的实参对象在函数中不被修改。
一个指针变量可以是只读的,称为const指针
指向const对象的const指针
3 一维数组与指针
C++程序员更偏爱使用指针来访问数组元素,这样做的好处是运行效率高、写法简洁。
用多种方法遍历一维数组元素
数组元素访问方法的比较
4 指针与字符串
可以利用一个字符型的指针处理字符串,其过程与通过指针访问数组元素相同。使用指针可以简化字符串的处理,是程序员处理字符串常用的编程方法。
指针访问字符串举例:
指针可以指向数组,使得数组的访问多了一种途径,但指针并不能替代数组来存储大批量数据。
5 指针作为函数的参数:
指针最重要的应用是作为函数参数,它使得被调函数除了返回值之外,能够将更多的运算结果返回到主调函数中。因此,指针是函数参数传递的重要工具。
通过将指针作为函数参数的方法,既可以返回多个运算结果,又避免了使用全局变量。
6 数组作为函数的参数
要想在子函数中改变主调函数中的数组元素,实参与形参的对应关系有如下4种,这4种情况作用相同:
字符指针变量作为函数形参
将一个字符串传递到函数中,传递的是地址,则函数形参既可以用字符数组,又可以用指针变量,两种形式完全等价。在子函数中可
以修改字符串的内容,主调函数得到的是变化后的字符串。