LINUX Shell:比较一组数的大小,输出最大者

原创 2006年06月04日 11:29:00

比较一组数的大小,输出最大者

CODE:
#!/bin/bash
#找出最大的数
#2006.5.13 created by hjack
#version 1
#history:

Usage(){
  echo "Usage:max x1 x2 x3 ..."
  exit 1
}

#=============================
#传统方法,逐个比较,大的就赋给max变量。
#-----------------------------
max1(){
  max=$1
  for i in $(echo $*)
  do
    if [ $max -lt $i ];then
      max=$i
    fi
  done
  echo "the max value is : $max"
}

#=============================
#方法同max1,使用了shift来对参数进行移动。
#-----------------------------
max2(){
  max=$1
  while [ $2 ]
  do
    if [ $max -lt $2 ];then
      max=$2
    fi
    shift
  done
  echo "the max value is : $max"
}

#=============================
#先对要比较的数进行sort排序,然后输出最后一行。
#有个问题是,怎样把结果保存在一个变量里,像上面两个例子一样。 谁知道就说说~
#-----------------------------
max3(){
  for i in $(echo $*)
  do
    echo $i
  done | sort -n | tail -1
}

#=============================
#利用awk进行处理。
#----------------------------
max4(){
  echo "$@" | awk 'BEGIN{x=$1;} {for(i=1;i<=NF;i++)if($i>x)x=$i;} END{print "the max value is:" x}'
}

main(){
  if [ $# -lt "1" ] ;then
    Usage "$@"
  fi
  
  max1 "$@"
  max2 "$@"
  max3 "$@"
  max4 "$@"
}

#----------------
main "$@"
方法应该还有很多的,呵呵。暂想到这几个。想到再加上。

笔试题&面试题:给定n个数,要求比较次数1.5n同时找出最大值和最小值

写出一个算法,对给定的n个数的序列,返回序列中的最大和最小的数. 设计出一个算法,只需要执行1.5n次比较就能找到序列中最大和最小的数吗?能否再少? 分析:要求比较次数为1.5n,使用一般的逐个遍...
  • laoniu_c
  • laoniu_c
  • 2014年08月10日 10:50
  • 2134

python 输入三个变量,然后按小到大输出(解析)

python 实例解析(1) vim 2_python.py x = int(input('please input x:'))   y = int(input('please inpu...
  • tianyeming
  • tianyeming
  • 2015年10月09日 10:04
  • 8409

【C#】求10个数的最大值、最小值、平均数。

// Copyright (c) 2013, 烟台大学计算机学院 // All rights reserved. // 作 者: 沈远宏 // 完成日期:2014 年 09月04日 /...
  • u012369143
  • u012369143
  • 2014年09月04日 16:01
  • 3328

剑指offer (30)选择问题-----1.有一组N个数,确定其中第K个最大者;2.求最小的k个数

该问题的第一个解法 就是将N个数读进一个数组中,再通过某种
  • jw903
  • jw903
  • 2014年04月04日 15:41
  • 1209

linux shell 编程1文件权限检测、字符串比较判断、数值大小比较、时间获取以及单引号双引号反引号等的使用

我们在服务器上经常能看到很多复制,启动停止程序的脚本,下面就来慢慢学学…… 菜鸟一枚如有错误还请大家指教 一、文件状态的测试 1、文件状态有: -d(directory):目录    -L(link)...
  • QH_JAVA
  • QH_JAVA
  • 2015年10月12日 22:37
  • 1013

选择问题(一组N个数确定其中的第K个最大者)

1、该问题的一种解法是讲这N个数读进一个数组中,在通过某种简单排序算法(如:冒泡排序),以递减的 顺序将数组排序,然后返回位置k上的元素。(c语言编写,输入输出c++,纯c的话改过来即可) #incl...
  • GWCLB_2013
  • GWCLB_2013
  • 2015年04月26日 16:07
  • 1903

Linux Shell字符串比较

  • 2016年08月25日 13:44
  • 321KB
  • 下载

创建固定大小的文件 -- Linux shell 脚本编写实例

创建固定大小的文件 -- Linux shell 脚本编写实例   昨天验证bug时,需要在原来文件的基础上生成一个固定大小的新文件,具体要求如下:   1. 源文件 src_fil...
  • yuzaipiaofei
  • yuzaipiaofei
  • 2012年03月08日 12:38
  • 647

linux shell 判断 文件整数 存在、大小、空、等

转自:http://hi.baidu.com/nbye2000/item/371624271fdc1dd3a417b642 *      文件测试操作符     如果下面的条件成立将会返回真....
  • shanliangliuxing
  • shanliangliuxing
  • 2013年01月13日 22:22
  • 1755

java控制台输入cmd命令, ssh远程linux shell命令, 并打印命令输出到控制台

  • 2017年11月24日 09:51
  • 5KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LINUX Shell:比较一组数的大小,输出最大者
举报原因:
原因补充:

(最多只允许输入30个字)