C语言第6章1 数组.ppt

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

【例】对10个数从小到大排序 int a[10]; int i,j,t; printf(input 10 numbers :\n); for (i=0;i10;i++) scanf(%d,a[i]); printf(\n); for(j=0;j9;j++) //进行9趟排序 for(i=0;i9-j;i++) //每趟比较9-j次 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;i10;i++) printf(%d ,a[i]); printf(\n); 输入各整数 j =0;j9 i =0;i9-j a[i]a[i+1] 真 假 t=a[i] a[i]=a[i+1] a[i+1]=t 输出排序后的数 运行结果: input 10 numbers: 13 20 64 78 21 8 14 30 45 23↙ the sorted numbers: 8 13 14 20 21 23 30 45 64 78 【例】用选择法对数组中的数进行排序 5 7 4 2 8 6 p p=0,a[p]=5 5 7 4 2 8 6 p a[p]与a[1]比,p记下最小元素位置 p=0,a[p]=5 5 7 4 2 8 6 p a[p]与a[2]比,p记下最小元素位置 p=2,a[p]=4 5 7 4 2 8 6 p a[p]与a[3]比,p记下最小元素位置 p=3,a[p]=2 5 7 4 2 8 6 p a[p]分别与a[4],a[5]比, p记下最小元素位置p=3,a[p]=2 j=0;p=j; //j每趟最小值的位置 for(i=j+1;iN;i++) if(a[p]a[i]) { p=i; } p记下a[0]~a[5]间的最小数的位置。 若p!=j,则调换p位置元素与第j元素的值 5 7 4 2 8 6 p a[p]分别与a[4],a[5]比, p记下最小元素位置p=3,a[p]=2 t=a[j]; a[j]=a[p] ; a[p]=t; 以上是一趟选择排序过程,后面可按此思路,j从1循环至4,从a[j+1]~a[5]中找出最小元素与a[j]交换,那么经过5趟选择排序后,将得到从小到大的顺序数。 2 7 4 5 8 6 j 原始数据: 5 7 4 2 8 6 第1趟排序: 2 7 4 5 8 6 a[0] a[1] a[2] a[3] a[4] a[5] 第2趟排序: 2 4 7 5 8 6 第3趟排序: 2 4 5 7 8 6 第4趟排序: 2 4 5 6 8 7 第5趟排序: 2 4 5 6 7 8 选择法排序过程 // 选择法排序程序 int main() { int i,j,p,t, a[6]={5,7,4,2,8,6}; for(j=0;j5;j++) { p=j; //标记当前最小元素下标 for(i=j+1;i=5;i++) //经过5趟排序 { if(a[p]a[i]) p=i; //比较,记录每趟选 // 择中最小元素位置 } if(p!=j) // 交换j和p位置上的数 { t=a[j];a[j]=a[p];a[p]=t; } } printf(“after sor

文档评论(0)

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

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

1亿VIP精品文档

相关文档