利用c语言中两种排序方法巧解排序难题

来源 :新课程·上旬 | 被引量 : 0次 | 上传用户:pstolyb
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在c语言编程中,起泡排序和选择排序是两种常见的排序编程,教师应认识到这两种排序编程的重要性、编程过程、特征和应用。
  关键词:起泡法;选择法;排序
  一、重要性分析
  在c语言的教学中,起泡排序和选择排序是教学重点,在c语言编程考核中,对这两种排序的考核,也往往用来作为测量学习者水平高低的标准。
  二、起泡法
  用起泡法对10个数排序(由小到大)
  1.算法分析
  将相邻两个数比较,将小的调到前头,大的调到后头。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此类推,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
  若有6个数:26 25 17 58 49 13
  第一趟排序后结果:25 17 26 49 13 58
  第二趟排序后结果:17 25 26 13 49 58
  第三趟排序后结果:17 25 13 26 49 58
  第四趟排序后结果:17 13 25 26 49 58
  第五趟排序后结果:13 17 25 26 49 58
  2.编程分析
  #include
  void main( )
  {int a[10];
  int i,j,t;
  printf(“input 10 numbers: \n”);
  for (i=0;i<10;i++)
  scanf(“%d”,&a[i]);
  printf(“\n”);
  for (j=0;j<9;j++)
  for (i=0;i<9-j;i++)
  if (a[i]>a[i+1])
  { t=a[i];
  a[i]=a[i+1];
  a[i+1]=t;
  }
  printf(“the sorted numbers: \n”);
  for (i=0;i<10;i++)
  printf(“%d”,a[i]);
  printf(“\n”);
  }
  双重循环部分是本程序的重点,要理清变量i,j,t的关系,其中i用来控制内循环的次数,并通过外循环变量j的增加,决定每趟循环的次数及最后一次交换后数组内的最大元素。
  三、选择法
  用选择法对10个数排序(由小到大):
  1.算法分析
  n个记录的文件的选择排序,第1趟通过n-1次比较,从n个数中选择出一个最小结果。
  第i趟简单选择排序是指通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的纪录,并和第i个记录进行交换。共需进行i-1趟比较,直到所有记录排序完成为止。
  若有6个数:26 25 17 58 49 13
  第一趟排序后结果:[13] 26 25 58 49 17
  第二趟排序后结果:[13] [17] 26 58 49 25
  第三趟排序后结果:[13] [17] [25] 58 49 26
  第四趟排序后结果:[13] [17] [25] [26] 58 49
  第五趟排序后结果:[13] [17] [25] [26] [49] [58]
  2.编程分析
  #include
  void main( )
  {int a[10];
  int i,j,t;
  printf(“input 10 numbers: \n”);
  for (i=0;i<10;i++)
  scanf(“%d”,&a[i]);
  printf(“\n”);
  for (j=0;j<9;j++)
  for (i=j+1;i<10;i++)
  I if (a[j]>a[i])
  {t=a[i];
  a[i]=a[j];
  a[j]=t;
  }
  printf(“the sorted numbers: \n”);
  for (i=0;i<10;i++)
  printf(“%d”,a[i]);
  printf(“\n”);
  }
  双重循环部分是本程序的重点,要理清变量i,j,t的关系,其中i用来控制内循环的次数,通过外循环变量j的增加,决定每趟循环的次数,用j作为每趟选择后最小值的存放。
  四、起泡法和选择法在实际问题中的应用
  1.利用两种排序法可以解决排序问题
  起泡法和选择法都可以对数据进行排序,两种方法都应熟练掌握。
  2.利用两种排序方法的思想,可以解决最大值和最小值问题。来看两个编程题:
  (1)从键盘上任意输入10个不相同的整数,请自动输出最小值。
  (2)从键盘上任意输入10个不相同的整数,请自动输出最大值。
  问题1求最小值,我们只需使用选择法,经过一趟比较就可以求出最小结果;问题2求最大值,使用上面起泡程序,略作修改便可完成编程。
  参考文献:
  [1]谭浩强.c程序设计[M].清华大学出版社,2005.
  [2]林东,陈林.编程语言基础c语言[M].高等教育出版社,2007(12).
  (作者单位 江苏省邳州市车辐中等专业学校)
其他文献
《义务教育数学课程标准》提出:“要让学生在参与特定的数学活动,在具体情境中初步认识对象的特征,获得一些体验。”所谓体验,就是个体主动亲历或虚拟地亲历某件事,并获得相应的认知和情感的直接经验的活动。让学生亲历经验,不但有助于通过多种活动探究和获取数学知识,更重要的是学生在体验中能够逐步掌握数学学习的一般规律和方法。教师要以“课标”精神为指导,用活、用好教材,进行创造性的教,让学生经历学习过程,充分体
期刊
纵观历年的中考试卷或是平时的教学,作为数学教师都会把相似三角形放在一个很重要的位置,是中学数学的重要内容之一,是全等三角形的拓展与延续,体现了客观认识事物的规律从特殊到一般,从内容和形式上也显得更丰富多彩,是考查同学们分析能力、想象能力、探索能力和创新能力的热点内容,并且在相似三角形问题上,可操作性强,有利于提高同学们的动手能力。因此,本文将通过例题解析有关相似三角形的问题,谈谈笔者对相似三角形的
期刊
纵览历年来全国各省的高考试题,我们不难发现,关于函数y =Asin(ωx+?渍)的图象和性质、最值和解析式的求解,以及变换问题屡屡皆是,是高考中必考的一项内容,一般选择题一道,填空题一道,甚至解答题中也会涉及,考察分数大约在20分到25分左右,很显然,这部分知识是不容忽视的,我们必须牢牢把握。但是在教学实践中,我们会发现,我们的学生对此掌握的并不是那么理想,反而这样的题目成了错误率很高的题目,这是
期刊
数学是推理中的音乐,而音乐则是感觉中的数学。代表理性的数学,其规律与秩序所产生的美感,虽无声音之传递,但与音乐是根本相通的;而代表感性的音乐,其音强、音高、音色、节奏、旋律、曲式及风格,虽无明显的数学表达,但数学的踪影却处处可见。  数学概念在乐章中一个非常有趣的方面是Fibonacci数列和黄金分割理论的存在。前者是由意大利的数学家L.Fibonacci命名的一个整数数列。其特点是:从第三项起,
期刊
摘 要:课堂是由无数个细节组成的,有时候,一个教学细节的忽略,往往会导致整个课堂气氛甚至教学预期的改变。提出了教师应利用教学细节,让教学真正走向有效和高效。  关键词:细节;精彩;预设;生成  老子曾说:“天下难事,必做于易;天下大事,必做于细。”是的,细节决定成败!如果我们教师能在课前有意识、创造性地预设好每一个教学细节,并在课堂中运用自身积累的教学经验机智地处理好每一个预设之外的教学细节,那么
期刊
问题1:数学通报(2011年4月刊)中2000号原题  设a,b,c∈R+,且a+b+c=1,求证:■+■+■>■.  数学通报在2011年5月刊上登载了该题的解法.在考虑本题时发现利用排序不等式也可以解决本问题.  首先,将排序不等式叙述如下:  设有两组数a1,a2,…,an;b1,b2,…,bn满足a1≤a2≤…≤an,b1≤b2≤…≤bn  则有a1b1+a2b2+…+anbn(顺序和) 
期刊
摘 要:无论课程怎么改革,教学中一定有自己的规律和方法,在分析人物形象,走进人物的精神世界的时候一定要有自己的方法,带上自己的学生,走进书中的人物,从入戏到欣赏再到描述和表演,让书中的人物走进自己的世界,让我们和他们有心与心的交流,这是教学中的一个特色。  关键词:入戏法 表演法 人物形象    语文教学是一个漫长而又探索的过程,在教学中的一个关键环节就是人物形象的分析,无论是在记叙文中还是在小说
期刊
高考命题组的总结:“相当数量的试题都源于课本的例题、习题,或稍加改造,或做拼合,常规题型、常见思路、常用的方法在试卷占了主题地位,突出了基础知识、基本技能和方法的考查。”很多高考题和模拟卷上的题有很多题都是课本习题的变式,尤其是在书后探究拓展、思考运用部分出现的频率更高,所以本人通过课本习题说明常见的构造图形法。  如,苏教版必修2第62页第18题:  【原题】设P,A,B,C是球O表面上的四点;
期刊
中国古代绘画是高中美术鉴赏课中最重要的课程之一,而对于古代绘画课程的讲授,长久以来却面临着内容古老、知识深奥、作品陈旧、氛围沉寂等诸多问题的困扰。山水画是中国古代绘画的精髓,如何使“山水之灵”激活“课堂之动”,让国画之精粹在课堂上绽放异彩,笔者为一节中国古代山水画课做了入题和收束的设计。以问题环环相扣紧凑引入,用活动激发兴趣轻松收束。  入题设想  引导学生走进“山水”,靠近古人。流过的是时间,停
期刊
【案例主题】  又到一年复习时,每每下课后,教师一碰面,都会看到这样一种现象:抖抖手中的试卷,看着学生出现的一个个错题,不断地摇头,一脸的疑惑,嘴里还在不停嘀咕:这些题都讲过N遍了!怎么还会错呢?是啊,我们很多在一线教学的老师都有这样的疑惑和无奈:为什么在课堂上反复强调的知识,怎么还有这么多学生掌握不好呢?是不是我们的教学过程出了什么问题?  现代教材中介绍了不少重要的公式,提高了不少有深刻背景的
期刊