第6章_数组3.ppt

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章_数组3

第六章 本章要点 主要内容 6.1 数组的概念 6.2 一维数组的定义和引用 6.3 二维数组的定义和引用 6.4 字符数组 6.1 数组的概念 例6.4编写程序,找出10个整数中的最小值及其位置。 解题思路:首先输入10个整数,然后找出其中的最小值及其位置,最后输出结果。其中最主要的功能是求最小值及其位置,完成这一功能的主要步骤为: ①假定最小值为第一个数,也就是位置min为0; ②将min位置的数和数组的下一个数进行比较,如果min位置上的数大,则更改min值为更小数的位置; ③如果比较完数组中所有的数,位置min上的数就是最小值,否则转向②继续执行。 假设数组x的10个数依次为3、2、7、1、4、8、5、11、4、9 ,则寻找最小值及其位置的过程应该为: #include stdio.h main( ) {int x[10],i,min; printf(please enter 10 numbers: ); for(i=0;i10;i++) /*输入10个元素*/ scanf(%d,x[i]); min=0; /*给min置初值*/ for(i=1;i10;i++) /*从第1个元素开始查找最小值位置*/ if (x[i]x[min])min=i; printf(minimum is x[%d]=%d,min,x[min]); /*输出最小值*/ } 输入3、2、7、1、4、8、5、11、4、9的程序运行结果为: please enter 10 numbers: 3 2 7 1 4 8 5 11 4 9↙ minimum is x[3]=1 例6.5采用选择法对数列进行排序。 解题思路:选择法排序(设对N个数进行排序)是每次从待排序数据中选择最小的数,与相应位置上的数交换。假设待排序的数列存放在一维数组a中,且找最小值位置的方法同例6.4,则选择法排序的过程为:第一次从N个元素(a[0]到a[N])中找到最小值位置min,如果min不等于0,将a[min]与a[0]交换;第二次从剩下的N-1 个元素(a[1]到a[N])中找到最小值位置min,如果min不等于1,将a[min]与a[1]交换,……,直至第N-1次从最后两个数(a[N-2]到a[N-1])中找到最小值位置min,如果min不等于N-2,将a[min]与a[N-2]交换。 假设数组a有10个数据,依次为: 3、2、7、1、4、8、5、12、45、9 则排序过程为: 第一趟排序(i=0)的过程中,找到的a[0]到a[9]10个元素中的最小元素下标放在min中: 3 2 7 1 4 8 5 12 45 9 min=3 1 2 7 3 4 8 5 12 45 9 min!=0, 交换a[0]与a[3] 第二趟排序(i=1)过程中,找到的a[1]到a[9]9个元素中的最小元素下标放在min中: 1 2 7 3 4 8 5 12 45 9 min==1,元素已在合适的位置,不需交换。 第三趟排序(i=2)过程中,找到的a[2]到a[9]8个元素中的最小元素下标放在min中: 1 2 7 3 4 8 5 12 45 9 min=3 1 2 3 7 4 8 5 12 45 9 min!=2, 交换a[2]与a[3] 依此类推,在经过九趟排序后得到有序序列: 1 2 3 4 5 7 8 9 12 45 #define N 10 #include stdio.h main( ) {int a[N],i,j,min,temp; printf(please enter %d numbers:,N); for(i=0;iN;i++) /*输入数列*/ scanf(%d,a[i]); for(i=0;iN-1;i++) /*N-1趟排序*/ {min=i; for(j=i+1;jN;j++) /*查找最小值,让min指向它*/ if (a[j]a[min]) min=j; if (min!=i) /*若最小值未在第i个位置,交换a[i]、a[min]*/ {temp=a[i];a

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档