第五单元数组与指针(I).pptVIP

  • 0
  • 0
  • 约6.85千字
  • 约 24页
  • 2017-03-15 发布于辽宁
  • 举报
第五单元数组与指针(I).ppt

5.7 多级指针与多维数组 (选读) 5.7 一级指针与二维数组 5.7 一级指针与二维数组 5.7 一级指针与二维数组 5.8查找与排序 (I)(P.196) 5.8.1 常用查找方法 5.8.1 常用查找方法 5.8.1 常用查找方法—对半查找 5.8.1 常用查找方法 参见【例6.4】对半查找递归算法 参见【例6.4】对半查找递归算法 5.8.1 常用查找方法 参见【例6.5】对半查找迭代算法 5.8.2 常用的排序法 5.8.2 常用的排序法 5.8.2 常用的排序法 5.8.2 常用的排序法 【例6.7】升序对半插入排序算法 5.8.2 常用的排序法 参见【例6.8】冒泡排序算法 5.8.2 常用的排序法 【例6.9】直接选择排序 * * 第五单元 数组与指针(I) 5.8 查找与排序 5.7 多级指针与多维数组(补充) 多级指针的概念: 多级指针变量中存的是另一个指针变量的地址,其说明如下: int val=10; int *pval=val; int **ppval=pval; //是多少级指针就有多少*号 cout val‘\t’ *pval‘\t’ **ppval; 这里val、*pval、**ppval值均为10。 注意*号为间接引用运算符,定义中的*号是指针说明符。 pval val 10 变量ppval 变量pval 变量val 指针与一维数组: 指向一维数组(首元素)的同类型指针与该数组名等效: int a[10], *pa =a;// =a[0]; 则pa[0] ,就是a[0]; *pa,即a[0]; *(pa+1) 和pa[1] ,都代表a[1]。 即a 与pa 两者等效。 二维数组与一级指针: 二维数组在内存中以一维数组的形式存储,所以可以采用一级指针指向并访问它。如有: int x2d[m][n]={1,2,3,4,…..}; int *pt=x2d[0][0];//x2d或x2d[0],可以?,错,不匹配 如何用pt访问x2d[i][j]? X2d数组对应一维内存的索引为i*n+j。 所以*(pt+i*n+j) 就是x2d[i][j],相等。 【例5.14】用指向二维数组首地址的一级指针访问数组元素。 int main( ){ int a[3][6]={{1,2,3,4,5,6},{7,8,9,10,11,12},{13,14,15,16,17,18}}; int * ptr,i,j; ptr=a[0][0] ; //不能ptr = a; for(i=0;i18;i++){ cout*(ptr+i)\t; if(i%6==5) coutendl; } return 0;} 启示:可用指向任意维数组首地址的一级指针以及长度信息,将数组完整地传递到函数中,从而实现函数(算法)的通用性。 5.8.2 常用的排序法 5.8.1 常用查找方法 查找(search):是最重要的计算应用之一,是在数据集合中寻找满足条件的数据,找到后进一步给出该数据对象的细节信息,在数据库技术中称为检索(retrieval)。不同于枚举查找! 排序(sorting): 要实现查找,首先要对数据排序。查找算法不适用杂乱无章的数据。 例如利用计算机数据库可以快速查找到数据,首先因为其数据有序排列,其次使用了查找算法。 顺序查找: 从首个元素开始,依据一定原则顺序查找直到找到或查到最后元素为止。 查找是按关键字(key word)进行。可以唯一地把资料区分出来的数据项被称为主关键字。如学生的资料,学号可作为主关键字。 对于数据集合,按照关键字小的往前还是后排列,可分别称为升序排列与降序排列。对于升序排列,可以采用对半查找(binary search)。 low 8 9 17 13 11 20 7 19 21 23 31 26 29 2 5 37 39 23 查找 low mid high 20 21 29 26 23 31 37 39 mid high low 20 21 23 mid high 23 low mid high 成功 图6.3 查找成功例 首先安排两个变量low和high作为关键词序列的首尾两元素的下标,取mid= (low+ high)/2,如mid位置的元素是所查找的,则结束。如果该元素大了,则取low=mid +1, high不变,继续查找;如果该元素小了,则取 high=mid-1,low不变,继续查找。如果查到low=high仍未找到,则失败,停止。 对半查找: 2 5 7 8 11 13 17 9 19 20 23 21 26 29 31 37 10 查找 low 39 mi

文档评论(0)

1亿VIP精品文档

相关文档