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个整数按由大到小的顺序排序。

教学后记


本文标签: 排序 教学 选择 授课 掌握