深 圳 职 业 技 术 学 院Shenzhen Polytechnic
计算机系乌云高娃 Wygw@21cn.com 第 22 页 共 83 页
第五单元(2):数组的应用
教学内容 数组的排序、插入等应用(重点讲解编程思路)
教学目标
应知 数组在实际问题解决中的应用
应会 能够分析具体问题,从而用数组解决,掌握冒泡排序的思路和实现
难点 冒泡法排序
教学方法
项目拓展,实例分析引导
教学过程
1,复习数组的定义、初始化、引用、输入、输出。
定义一个整型数组a[10],从键盘输入、输出。
Define an integer array including ten datas,then input the datas from the
keyboard and output them to the screen,
学生易错
2,对一个整型数组按照从小到大进行排序(算法是重点)
Sort an integer array using bubble sorting,(Arithmetic is important )
冒泡算法,
1,从最后一个元素开始(设置循环的初始值)
2,根据排序的顺序,两相邻元素进行比较和交换(内层循环)
3,进行下一轮相邻数据的比较交换(外层循环)
3,优化第2步的程序:如果初始数组数据是1,2,3,5,4 如何在用冒泡法排序时优化程序。(思考题,学生提出的问题)
要点
深 圳 职 业 技 术 学 院Shenzhen Polytechnic
计算机系乌云高娃 Wygw@21cn.com 第 23 页 共 83 页
在某一趟循环比较中如果没有发生数据交换,则表明数据已然有序。
4,思考题:在第2步数组排序的基础上,进一步将一个数据插入一个有序数组中(算法是重点)(通过分析、提出算法、尝试实现)
Insert a data to a sorted array,
插入算法的步骤
1)数据初始化
2)输入待插入数据
3)找到待插入位置
4)将待插入位置空出(从插入位置i起,把以后的数据后移,以备插入数据)
5)插入数据
6)输出结果
学生容易出错的地方
数组用方括号
用scanf语句时,数组元素前应加取地址符号
语句错误,不了解数组定义时与数组元素使用时的区别:scanf(“%d”,a[10]) ;
企图在一个for语句中输入、输出数据,但没有使用复合语句。
问题与讨论
在数组中插入数据时,引起其他数组元素的移位,怎样可以解决?(铺垫链表)
如果考虑数据插入数组头部或数组尾部时程序要否修改?怎样修改?
小结(可由问题与讨论方式给出)
采用数组编程时通常需要循环语句,此时要注意循环三要素的确定
通过物理分析,考虑数组元素的下标,总结普遍规律,然后转化为程序语言。
课后任务
完成思考题
深 圳 职 业 技 术 学 院Shenzhen Polytechnic
计算机系乌云高娃 Wygw@21cn.com 第 24 页 共 83 页
整理笔记
求1-256之间的回文数
查找一个数是否在数组中存在并打印相应下标。