admin 管理员组文章数量: 1087135
2024年1月11日发(作者:在js中是什么意思)
课题序号
授课班级
授课章节
名称
使用教具
09微机
授课日期
授 课 课 时
第 周 月 日(星期 )
2 授课形式 理论
一维数组应用举例(冒泡排序)
无
1、 进一步让学生掌握一维数组的应用
2、 掌握冒泡排序、选择排序算法。
教学目的 3、 进一步提高学生编写程序的能力
教学重点
掌握冒泡排序、选择排序算法。
教学难点
掌握冒泡排序、选择排序算法。
更新、补
充、删节
内容
无
课外作业 补充
课堂教学安排
教学步骤
导入新课
新课讲授
教 学 内 容
一、采用“冒泡法”对任意输入的10个整数按由小到大的顺序排序。
冒泡法排序的思路是:n个数由小到大排序,将相邻两个数依次进行比较,将小数调换在前头,逐次比较,直至将最大的数移至最后;再将n-1个数继续比较,将次大数移至倒数第2位置;依此规律,直至比较结束。
例如“9、6、8、2、4”的排序过程示意如下:
第1步: 9 交换
6
(比较4次) 6
8
8
2
2
交换 4
4
9
第2步: 6 不换
(比较3次) 8
2
4
9
6 6
8
6829
4教学方法及
双边活动
9 交换
8
2
4
9 交换
2
4
6
8 交换
2
4
9
2
6
2
8 交换
4
9
2
4
6
8
9
6
2
4
8
9
第3步: 6 交换
第4步: 2 不换
(比较2次) 2
(比较1次) 4
4
6
8
8
9
9
6 交换
4
8
9
程序如下:
main( )
{ int a[10],i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
for(j=0;j<10-i;j++)
if(a[j]>a[j+1])
{ t=a[j];a[j]=a[j+1];a[j+1]=t;}
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("n");
}
程序运行结果为:
若输入10个数是:22 34 98 76 –90 59 –11 45 81 –27
则排序的结果为 :-90 –27 –11 22 34 45 59 76
课堂提问讨论
课堂小结
步骤五 布置作业
81 98
二、采用“选择法”对任意输入的10个整数按由大到小的顺序排序。
程序如下:
main( )
{ int i,j,t,max,max_j,b[10];
for(i=0;i<10;i++)
scanf("%d",&b[i]);
for(j=0;j<9;j++)
{ max=b[j]; max_j=j;
for(i=j;i<10;i++)
if(b[i]>max)
{ max=b[i]; max_j=i;}
t=b[max_j]; b[max_j]=b[j];b[j]=t;
}
for(i=0;i<10;i++)
printf("%4d",b[i]);
printf("n");
}
程序运行结果为:
若输入10个数是:22 34 98 76 –90 59 –11 45 81 –27
则排序的结果为 :98 81 76 59 45 34 22 –11
–27 -90
板书设计
1、采用“冒泡法”对任意输入的10个整数按由小到大的顺序排序。
2、采用“选择法”对任意输入的10个整数按由大到小的顺序排序。
教学后记
版权声明:本文标题:一维数组排序教案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1704963793a468258.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论