首页 > 代码库 > 找出数据集合中的最小值和最大值的两种算法比较
找出数据集合中的最小值和最大值的两种算法比较
最小值和最大值
—— 算导笔记
实现太过于简单以至于算导里面都不讲代码实现,只是简单介绍了理论.
通常寻找最大值最小值的方法
方法一:
void max_min(int* array,int size,int* max) { int tmp = 0; for(tmp = 0,*max = array[0];tmp < size;tmp++) { *max = *max > array[tmp] ? *max : array[tmp]; } }
这里如果寻找最小值同理
可以发现如果同时要求找到最小值和最大值需要比较2*size次
有没有更快的方法呢?
方法二:
void max_min(int* array,int size,int* min,int* max) { int tmp = 0; for(tmp = 0,*min = array[0],array[1];tmp < size;tmp += 2) { if(array[tmp] < array[tmp+1]) { *min = *min < array[tmp] ? *min : array[tmp]; *max = *max > array[tmp+1] ? *max : array[tmp+1]; } else { *min = *min < array[tmp+1] ? *min : array[tmp+1]; *max = *max > array[tmp] ? *max : array[tmp]; } } }
找出数据集合中的最小值和最大值的两种算法比较
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。