寻找最小绝对值

一组有序数(从小到大排列),有负有正,找出绝对值最小值

#include <stdio.h>
#include <vector>
using namespace std;

static int GetMin(const vector<int> &data, int begin, int end){
 //循环到只剩下两个相邻数字,或者整个序列都是相同符号
   if(end - begin == 1 || data[begin] * data[end] >= 0){
      return abs(data[end]) > abs(data[begin]) ? data[begin] : data[end];
   }

   int k = (begin + end) / 2;
   //对异号的序列查找
   if(data[begin] * data[k] > 0){
     return GetMin(data, k, end);
   }
   return GetMin(data, begin, k);
}

int FindAbsMin(const vector<int> &data){
   int m = GetMin(data, 0, data.size() - 1);
   printf("%d", m);
   return m;
}
int main(){
   vector<int> data;
   int Num[] = {-4,-3,-2,-1};
   for(int i = 0; i < sizeof(Num) / sizeof(Num[0]); ++i){
     data.push_back(Num[i]);
   }
   FindAbsMin(data);
 return 0;

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (转载者)【逻辑引擎】简序:虽然关于超限数的一些理论(特别是大基数)遭到某些直觉主义者或构造主义者的诟病,但对我个...
    guozhao1985阅读 1,002评论 0 1
  • 按照用途分类出以下统计函数: AVEDEV 用途:返回一组数据与其平均值的绝对偏差的平均值,该函数可以评测数据(例...
    四方院祭司阅读 2,983评论 0 3
  • 清晨,雨停了,睡到自然醒,这让我想起了小时候的一篇课文:欣欣然张开了眼,一切都是刚睡醒的样子,山朗润起来了,水涨起...
    红之杰阅读 338评论 0 0
  • 星耀小学六年二班,刘家卉妈妈日记,时间过得真快,孩子都上六年级了,现在想一想这几年来对孩子的学习没关心,只是每天完...
    开快每一天阅读 183评论 0 0
  • 一. “可是,不能因为他,我就放弃学习技能的机会啊。” Z认真地对我说。 两个月前的某个晚上,我和Z在楼梯上坐到了...
    青一时玖阅读 379评论 0 0