ITPub博客

首页 > 应用开发 > IT综合 > 算法求数组中的最大值最小值

算法求数组中的最大值最小值

原创 IT综合 作者:dongyu2013 时间:2014-04-16 07:51:40 0 删除 编辑

算法数组中的最大值和最小值

方法1:遍历两次求出最大值最小值 ,时间复杂度N*2

方法2:相邻两个数分为一组比较,大的放在偶数位,小的放到奇数位,然后在偶数位上找到最大值,在奇数位上找到最小值N*1.5

方法3:定义两个变量Max,Min值,相邻两个数分为一组,比较出最大值和最小值,最大值和Max比较,是否大于Max,如果大于赋值于Max,最小值和Min比较,是否小于Min,如果小于赋值于Min

方法4:递归方法,分别求出前后N/2个数的Min和Max

程序:

(Max,Min)Search(arr, b, e)

{

     If(e-b<=1)

{

     If(arr[b]

{

       Return arr[e], arr[b];

}

Else

{

      Return arr[b], arr[e];

}

}

MaxL,MinL=Search(arr,b,b+(e-b)/2);

MaxR,MinR=Search(arr,b+(e-b)/2,e);

If(MaxL>MaxR)

    maxV=maxL;

else

   maxV=maxR;

if(minL

minV=minL;

else

minV=minR;

return  maxV,minV;

}

扩展:
 求N个数组中,第二大的数:分别求出前后N/2中的最大值,比较返回较小的那个

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29012686/viewspace-1142923/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 笔记--链表算法
下一篇: 图的生成,遍历
请登录后发表评论 登录
全部评论

注册时间:2013-12-25

  • 博文量
    263
  • 访问量
    238065