C语言教学中关于排序算法的应用与分析
算法是计算机语言教学中的重要因素,是分析问题的钥匙、程序设计的思想,离开算法就谈不上程序设计。本文阐述了排序算法在复杂问题中的应用、解决思路及相应的C语言程序。
C语言教学中关于排序算法的应用与分析
庄前进
摘要:算法是计算机语言教学中的重要因素,是分析问题的钥匙、程序设计的思想,离开算法就谈不上程序设计。本文阐述了排序算法在复杂问题中的应用、解决思路及相应的C语言程序。
引言
排序算法虽然在C语言教学中经常用到,但是当学生遇到有难度的问题时却难以解决,无从下手。为了帮助学生提高问题分析能力以及巩固知识,下面通过两个复杂问题的分析,让学生掌握科学的学习方法和思维,写出正确的程序。
1、 排序算法
常用的排序算法有四种,分别是顺序比较法、冒泡法、插入法及选择法,各有各的特点,如果没有特别说明,用顺序比较法较为简单。
2、 排序算法的应用
学习程序如果仅仅是局限于排序就没有意义了,有时要涉及有难度和深度的问题。下面通过两道考题帮助我们加深对排序的了解。
2.1有20个在10—99(含10和99)之间互不相同的整数11,21,22,32,23,43,34,44,56,65,77,57,82,27,95,48,68,64,90,81,按个位数作升序排序,个位数相同时再按十位数作降序排列,将排序结果输出。
分析:程序应由下面几个部分组成:定义变量和数组,数组元素的赋值,数组元素的处理—排序,数组元素的输出。在排序程序段,应将数组元素分解为个位数及十位数,这是本题重要算法之一。
程序清单
#define N 20
main()
{ int i,j,x,y,m,n,k;
int a[N]={11,21,22,32,23,43,34,44,56,65,77,57,82,27,95,48,68,64,90,81};
for(i=0;i<=N-2;i++)
for(j=i+1;j<=N-1;j++)
{ x=a[i]% 10;m=a[i]/10;
y=a[j]% 10;m=a[j]/10;
if(x>y) {k=a[i];a[i]=a[j];a[j]=k;}
if(x==y) {k=a[i];a[i]=a[j];a[j]=k;} }
printf("\n the sorted numbers are:\n");
for(i=0;i<=N-1;i++)
printf("%4d",a[i]);
}
2.2下列程序列用数据96,123,78,14,37实现对MxN矩阵a的赋值,要求将给定的数据依次赋给数组b,然后用冒泡法按列自上而下进行升序排列。
例:5 X 6 矩阵的赋值结果 排序结果
96 123 78 14 37 96 14 14 14 14 14
123 78 14 37 96 123 37 37 37 37 37
78 14 37 96 123 78 78 78 78 78 78
算法是计算机语言教学中的重要因素,是分析问题的钥匙、程序设计的思想,离开算法就谈不上程序设计。本文阐述了排序算法在复杂问题中的应用、解决思路及相应的C语言程序。
14 37 96 123 78 14 96 96 96 96 96
37 96 123 78 14 37 123 123 123 123 123
分析:程序中b数组的赋值和排序是关键,但问题是如何利用a数组中数据给b赋值,当a数组中的值使用完毕,再从a数组中的第一个数开始赋值,利用计数器来判断a数组中元素的个数。因为是二维数组,所以要用到三重循环为数据排序。
程序清单
#define M 5
#define N 6
main()
{ int i,j,k,t=0;
int a[5]={96,123,78,14,37};
int x,b[M][N];
for(i=0;i<M;i++)
for(j=0;j<N;j++)
{ b[i][j]=a[t++];
if(t % 5==0) t=0;
}
for(i=0;i<M;i++)
{for(j=0;j<N;j++)
printf("%4d",b[i][j]);
printf("\n");}
printf("\n");
for(i=0;i<N;i++)
for(j=1;j<=M-1;j++)
for(k=0;k<=M-j-1;k++)
if (b[k][i]>b[k+1][i])
{x=b[k][i];b[k][i]=b[k+1][i];
b[k+1][i]=x;}
for(i=0;i<M;i++)
{for(j=0;j<N;j++)
printf("%4d",b[i][j]);
printf("\n"); }
}
3.结束语
教师要让学生知一反三,扩充问题的广度与深度,做到融会贯通。这样,才能提高学生的创新能力,提高学习效率,起到事半功倍的效果。总之,在C语言教学过程中,教师要把重点米在算法上,帮助学生写出正确的程序。
…… 此处隐藏:252字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




