最大数算法
① 写出一个求有限整数列中的最大值的算法。
解:算法如下: 第一步:先假定序列中的第一个整数为“最大值”; 第二步:将序列中的下一个整数与“最大值”比较,如果它大于此“最大值”,这时就假定“最大值”是这个扒滚整数; 第三皮斗步:如果序列中还燃此磨有其他整数,重复第二步; 第四步:在序列中一直到没有可比的数为止,这时假定的 “最大值”就是这个序列中的最大值。 |
② 设计算法找出三个数中的最大值
有a,b,c三个数,比较它们的大小
方法一,按顺序两两比较,取较大的
if (a > b) {
max = a;
} else {
max = b;
}
if (max < c) {
max = c;
}方法二,假设第一个是最大的,与后面两个数进行比较,将较大的值赋给max
int max = a;
if (b > max) {
max = b;
}
if (c > max) {
max = c;
}
拓展资料
1、什么是算法
算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。
mark:我们可以把所有的算法想象为一本“菜谱”,特定的算法比如菜谱中的的一道“老醋花生米”的制作流程,只要按照菜谱的要求制作老醋花生米,那么谁都可以做出一道好吃的老醋花生米。so,这个做菜的步骤就可以理解为:“解决问题的步骤”
2、算法的意义
假设计算机无限快,并且计算机存储容器是免费的,我们还需要各种乱七八糟的算法吗?如果计算机无限快,那么对于某一个问题来说,任何一个都可以解决他的正确方法都可以的!
当然,计算机可以做到很快,但是不能做到无限快,存储也可以很便宜但是不能做到免费。
那么问题就来了效率:解决同一个问题的各种不同算法的效率常常相差非常大,这种效率上的差距的影响往往比硬件和软件方面的差距还要大。
3、如何选择算法
第一首先要保证算法的正确性
一个算法对其每一个输入的实例,都能输出正确的结果并停止,则称它是正确的,我们说一个正确的算法解决了给定的计算问题。不正确的算法对于某些输入来说,可能根本不会停止,或者停止时给出的不是预期的结果。然而,与人们对不正确算法的看法想反,如果这些算法的错误率可以得到控制的话,它们有时候也是有用的。但是一般而言,我们还是仅关注正确的算法!
第二分析算法的时间复杂度
算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的好坏。
③ 请问:文字说明求一维数组中最大值的算法
首先,在数组中输入n个数字,假设第一个数为最大值,将其与后面的数值一一进行比较,当遇到最大值时记录其坐标,将其与第一个数进行交换,这样就能找到一维数组中最大值了 ,下面是程序
#include<stdio.h>
#define NUM 10
void main()
{
int a[NUM];
int i,j,k,t;
printf("input %d numbers\n",NUM);
for(i=0;i<10;i++)
scanf("%d",&a[i]);
//令第一个数为最小数 a[k]
for(j=0;j<NUM-1;j++)
{
k=j;
for(i=j+1;i<NUM;i++)
if(a[k]>a[i])
k=i;
if(k!=j)
{
t=a[j];
a[j]=a[k];
a[k]=t;
}
}
printf("%5d",a[9]);
printf("\n");
}
这是选择排序法,它的效率高点
④ 设计一个算法,求三个数中的最大数
告诉你思路:
假设这三个数分别为:a、b、c
设最大的数为:max
如果 a >= b,则 max=a,反之 max=b;
如果 max >=c ,则 max=max ,反之 max=c;
这样三个数中最大的数就是max 了。