网站大量收购独家精品文档,联系QQ:2885784924

c语言查找排序.pptVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言查找排序

线性查找 就是用有哪些信誉好的足球投注网站关键字逐个与数组元素相比较以实现查找。 适用于规模较小的数组或无序排列的数组。 折半查找 定义: 就是用有哪些信誉好的足球投注网站关键字与数组及其 子数组的中间元素的值进行比较以实现查找。 适用: 适用于有序排列的数组。 优点: 每次比较之后有一半的数组元素可以被排除在比较范围之外。 #include stdio.h int main() { int a[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int high = 9, low = 0, m, key; printf(请输入要查找的数:); scanf_s(%d, key); 1.冒泡排序 2.选择排序 3.插入法 原理为从a[0]开始,依次将其和后面的元素比较,若a[0]a[i],则交换它们,一直比较到a[n]。同理对a[1],a[2],...a[n-1]处理,即完成排序 选择排序 选择法循环过程与冒泡法一致, 比冒泡法省下许多无用的交换,提高了效率。 #include stdio.h int a[10] = {0, 1, 4, 3, 5, 9, 2, 6, 8, 7 }; int i, j, t, max, max_j; for (i = 0; i 9; i++) { max = a[i]; max_j = i; //假设第一位为最大值,最大值所在位置为第i+1位 for (j = i+1; j 10; ++j) if (max a[j]) { max = a[j]; //找出最大值 max_j = j; //找出最大值对应的位置 } t = a[max_j]; //将最大值同循环开始的第一位(即i)交换位置 a[max_j] = a[i]; a[i] = t; } for (i = 0; i 10; ++i) //输出编排后的数组 printf(%d\t, a[i]); } int main() { int arr[9] = { 1, 2, 3, 4, 6, 7, 8, 9 }; int i, key, p; printf(请输入); //输入要插入的数 scanf(%d, key); for (i = 0; i 8; ++i) //判断出要插入的数所在位置 if (key arr[i]) { p = i; break; } for (i = 7; i = p; i--) //将要插入的数字插入 arr[i + 1] = arr[i]; arr[p] = key; for (i = 0; i 9; ++i) //输出数组 printf(%d, arr[i]); } * * * 至少让自己不讨厌 不能让每个人都喜欢, #include stdio.h int main() { int arr[] = { 1, 2, 3, 4, 5, 6 }; int i, key; while (1) { printf(\n请输入要查找的数:); scanf(%d, key); for (i = 0; i 6; ++i) if (key == arr[i]) { printf(该数字在第%d位, i + 1); break; } getchar(); } while (1) { m = (high + low) / 2; if (key == a[m]) { printf(该数字在第%d位, m+1); break; } else if (key a[m]) high = m; else low = m; } getchar(); } 原理简单,但是交换次数多,效率低。 #include stdio.h int main() { int a[9] = { 33, 55, 11, 22, 99, 66, 77, 44, 88 }; int i, j, t; for (i = 0; i 9;++i) for (j = 0; j 9-1- i;++j) if (a[j]a[j + 1]) { t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } for (

您可能关注的文档

文档评论(0)

kfcel5460 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档