当前位置: 首页 > news >正文

支付宝网站怎么设计的网站建设基础百度百科

支付宝网站怎么设计的,网站建设基础百度百科,网站留言程序怎么做,软文代写文案今天小编带大家了解一下什么是“打擂台”算法。 一.思路分析 可以定义一个数组arr,长度为10,用来存放10个数字,设计一个函数Max,用来求两个数中的较大值, 定义一个临时变量tmparr[0],保存临时最大的值,下标…

 今天小编带大家了解一下什么是“打擂台”算法。


一.思路分析

可以定义一个数组arr,长度为10,用来存放10个数字,设计一个函数Max,用来求两个数中的较大值, 定义一个临时变量tmp=arr[0],保存临时最大的值,下标是index,然后进行两两比较,如果下一个数组元素比临时最大值大,那么就把tmp换成新的数值。并记录下它的下标,最后剩下来的临时最大值就是整个数组中的临时最大值。


二.打擂台算法(了解即可)  

背景:拳击比赛中,先选出一个擂主,然后挑战者来挑战,如果成功 ,那么挑战者成为新的擂主,否则擂主捍卫成功,当所有挑战者都挑战完成后,那么最后的那个擂主就是最强的

同样的,本题中,先让arr[0]成为擂主,然后依次让arr[1],arr[2]...arr[10],进行比较大小,如果arr[0]<arr[1],那么擂主让给arr[1],即tmp=arr[1],并保存下它的下标1。依次类推,直到选到最大的数字。

.打擂台算法(Tournament algorithm),也被称为淘汰赛算法,是一种用于解决最值问题的算法。它通过将问题的输入从不同的角度进行两两比较,从而找到最大值或最小值。

下面以找出数组中的最大值为例来解释打擂台算法:

1. 将待比较的元素按照一定的规则进行分组。例如,将数组中的元素两两分组进行比较,如果数组个数为奇数,则最后一个元素被单独分组。

2. 在每个分组中进行比较,并记录每组的胜者。比较的方式可以是简单的大小比较,或者根据特定的条件进行比较。

3. 将每个分组的胜者再次组成新的分组,继续进行两两比较,直到只剩下一个胜者。

4. 最后,剩下的那个胜者就是数组中的最大值。

这个算法的特点是通过不断地比较和淘汰,逐渐缩小了待比较的范围,最终找到了最大值(或最小值)。

打擂台算法的时间复杂度为O(log n),其中n是输入元素的个数。它的效率非常高,尤其适用于需要找到最值的场景,如数组中的最大值、最小值等。

需要注意的是,打擂台算法通常需要满足比较的元素具有传递性,即如果元素A比元素B大,元素B比元素C大,则元素A必定比元素C大。否则,算法可能得不到正确的结果。


三.图解


 四.代码分析

  • 定义出最大值函数
int Max(int a, int b)
{return a > b ? a : b;
}

  •  定义出数组,并从键盘获取10个数字
	int arr[10] = { 0 };printf("请输入10个数字\n");int len = sizeof(arr) / sizeof(arr[0]);for (int i = 0;i < len;i++){printf("请输入第%d个数字 :", i + 1);scanf("%d", &arr[i]);}

  • 定义出“擂主”,并进行比赛,并保存新的擂主信息
	int tmp = arr[0];//临时最大值int index = 0;//保存临时最大值的下标for (int i = 1;i < len;i++){if (Max(arr[i], tmp) > tmp){tmp = arr[i];//把当前最大值赋给临时最大值index = i;//保存临时最大值的下标}}

  • 输出
	printf("最大值是%d,是第%d个数字", tmp, index + 1);

五.完整代码

int Max(int a, int b)
{return a > b ? a : b;
}
int main()
{int arr[10] = { 0 };printf("请输入10个数字\n");int len = sizeof(arr) / sizeof(arr[0]);for (int i = 0;i < len;i++){printf("请输入第%d个数字 :", i + 1);scanf("%d", &arr[i]);}int tmp = arr[0];//临时最大值int index = 0;//保存临时最大值的下标for (int i = 1;i < len;i++){if (Max(arr[i], tmp) > tmp){tmp = arr[i];//把当前最大值赋给临时最大值index = i;//保存临时最大值的下标}}printf("最大值是%d,是第%d个数字", tmp, index + 1);return 0;
}


 六.运行结果


创作不易, 如果这份博客👍对你有帮助,可以给博主一个免费的点赞以示鼓励。
欢迎各位帅哥美女点赞👍评论⭐收藏⭐,谢谢!!!
如果有什么疑问或不同的见解,欢迎在评论区留言哦👀。
祝各位生活愉快⭐

http://www.sczhlp.com/news/100334/

相关文章:

  • 大连网站建设价格低东莞网站建设图表
  • 河南企业网站营销设计创新创业项目计划书ppt
  • 推广网站和品牌网站的区别域名免费注册0元注册
  • 贵阳市网站建设网站开发项目报价方案
  • 领地网做网站咋加文章网站开发女生适合吗
  • php后台网站开发教程wordpress登录选项
  • 吉林有做网站的吗如何在解决方案中新建网站
  • 吴江那里有做公司网站的中国网站排名 优帮云
  • 移动端响应式网站怎么做重庆垫江网站建设
  • 项目经理接到网站开发怎么开展求几个微信推广平台
  • 做的网站显示图片很慢网站建设计划
  • 广州网站优化招聘做seo为什么要了解网站
  • 洛枫娜娜米讨厌数学……?
  • Spatial 语言核心概念简介
  • 横向拖动的网站上海服装网站建设
  • 成都网站开发培训机构谷歌有做网站建设
  • 广丰做网站公司产品软文撰写
  • 朝阳建设网站学做衣服网站知乎
  • 深圳给企业做网站注册建筑工程公司起名大全
  • 做网站需要看什么书网站建设推广专家
  • 怎么样给网站的服务器续费做网站注册35类还是42
  • 蘑菇街的网站建设零基础月做网站多久
  • Redis数据库的五类核心数据结构
  • RAG 个人知识库 向量查找原理
  • css-1
  • Java-JDK8新特性
  • dw企业网站开发教程深圳网络安全公司
  • 可以做推广的门户网站社交模板网站建设
  • 免费创建自己的网站平台宣传片制作公司排行榜
  • 做免费的小说网站可以赚钱吗php帝国建站系统