美文网首页
伪·从零开始学算法 - 2.1 求一组数的最值

伪·从零开始学算法 - 2.1 求一组数的最值

作者: 阿啊阿吖丁 | 来源:发表于2018-03-11 17:12 被阅读21次

这一章开始,我们开始介绍一些算法的案例。

简介

求一组数的最值(包括最大值和最小值)算是入门级的难度。

我们通常的做法是:判断第二个数是否比第一个数大/小,如果是,记下第二个数作为最值;否则,记下第一个数作为最值。从第三个数开始,判断它是否比记下的最值大/小,如果是,记下这个数作为新的最值。此循环到最后一个数结束。最终记下的数即为最值。

流程图如下:

计算最大值 计算最小值

对于固定个数

一般来说,计算机的输入是机械化的,在算法给定的情况下,一般只能输入固定个数。

如果是两个数之间的最值的话,算法就很简单:

计算两个数的最值

三个数的话:

计算三个数的最值

更多的数请参照之前的方法。

输入任意多个数

对于无法直接输入任意多个数的编程语言,其实稍微变通,也可以输入任意多个数。

我们可以先输入要输入的数字的个数,再通过循环来对数字进行运算,如图:

输入任意多个数

我们以求最大值为例:

求最大值-输入任意多个数

注意其中“输入a”之后的两个判断,虽然“是”分支的处理相同,但是不能合并,因为在判断“i = 1?”的时候,max变量未定义,如果合并,程序会出错。

补充

事实上,很多编程语言都有最值的函数,可以直接调用。但是,我希望能够通过简单的算法案例,来加深对算法的认识。在以后的学习中也是这样。

而且,在实际应用中,我们需要考虑的情况还有错误的输入:输入值不是数字怎么办?输入值为空怎么办?……这就需要对输入值预先进行检查。本系列由于方便原因不做考虑,但是实际应用中还要注意。

相关文章

  • 伪·从零开始学算法 - 2.1 求一组数的最值

    这一章开始,我们开始介绍一些算法的案例。 简介 求一组数的最值(包括最大值和最小值)算是入门级的难度。 我们通常的...

  • 伪随机数

    概念: 伪随机数是使用一个确定性的算法计算出来的,在计算伪随机数时假如使用的开始值不变的话,那么伪随机数的数序也不...

  • JavaScript基础知识点--内置对象Math方法

    求最大、最小值 min() 语法 Math.min(num1, num2...numN) 功能 求一组数中的最小值...

  • LeetCode 1. Two Sum

    给一组数,和一个值,求两个值之和等于目标值的索引

  • 数据库进阶

    一,系统函数 1、有一组数(12,34,-5.5,103.2,0),求这组数中的最大值和最小值 selectgr...

  • 密码学基础之伪随机数

    随机数分类 真随机数 伪随机数2.1 强伪随机数2.2 弱伪随机数 真随机数:其定义为随机样本不可重现。实际上只要...

  • 求平均数

    题目:求给定一组数的平均数,要求去掉一个最大值,去掉一个最小值,再求平均值。 类数组转化为数组:把argument...

  • 伪·从零开始学算法 - 2.3 求圆周率

    本文为圆周率日特辑~ 简介 圆周率π是一个圆的周长与直径之比。即:π = C / d 。它是一个无限不循环小数,即...

  • PHP常见面试题及答案

    一.必答题1.(算法题)有1~5000一组乱序数列,请使用伪代码对该数进行排列. 2.(算法题)公鸡3元每只,母鸡...

  • MT19937 随机算法实现

    Mersenne Twister 算法译为马特赛特旋转演算法,是伪随机数发生器之一,其主要作用是生成伪随机数。此算...

网友评论

      本文标题:伪·从零开始学算法 - 2.1 求一组数的最值

      本文链接:https://www.haomeiwen.com/subject/iydwfftx.html