用分治法查找数组元素的最大值和最小值
来源:互联网 发布:mac os 10.11.6 镜像 编辑:程序博客网 时间:2024/05/22 16:54
算法分析:
代码实现:
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define ARRAY_SIZE 50
void FindMinMax (int *Array, int left, int right, int *min, int *max)
{
if ((right - left)==1)
{
*max = Array[left];
*min = Array[right];
if (Array[left] < Array[right])
{
*max = Array[right];
*min = Array[left];
}
}
else if ((right - left) == 0)
{
*max = *min = Array[left];
}
else {
int min1, min2, max1, max2;
FindMinMax (Array, left, (right - left)/2 + left, &min1, &max1);
FindMinMax (Array, (right - left)/2+1 + left, right, &min2, &max2);
(min1 > min2) ? *min = min2 : *min = min1;
(max1 > max2) ? *max = max1 : *max = max2;
}
}
int main (void)
{
int Array[ARRAY_SIZE];
int min, max, i;
srand(time(0));
for (i = 0;i<ARRAY_SIZE;i++)
{
Array[i] = rand() %100;
if(i%5==0)
printf("\n");
printf("%6d",Array[i]);
}
FindMinMax (Array, 0, i-1, &min, &max);
printf ("\nmin = %d \nmax = %d\n", min, max);
return 0;
}
运行结果:
- 用分治法查找数组元素的最大值和最小值
- 用分治法,二分求出数组的最大值和最小值
- Java 分治法 求解一组数组元素的最大值和最小值
- 分治法求数组的最小值和最大值
- 分治法求数组的最大值和最小值
- 数组元素最大值和最小值
- 同时求数组的最大值和最小值的分治算法
- 【分治法】求数组最大值和最小值(js版)
- 分治算法求数组的最大值最小值
- 用分治法寻找数组中的最大值与最小值
- 求一维数组中元素的最大值和最小值和位置
- 获取js数组元素的最大值和最小值
- 求出数组中元素的最大值和最小值
- 获取js数组元素的最大值和最小值
- 求整型 数组中最大值和最小值元素的距离
- 交换二维数组元素的最大值和最小值
- C++查找数组中的最大值和最小值
- 计算最大值和最小值(分治法)
- 程序员必知的8大排序
- iOS7.0之后tableview的cell分割线不靠边问题
- 自己写的一种字符串搜索
- Git操作——分支管理(一)
- 使用Builder模式进行美化代码
- 用分治法查找数组元素的最大值和最小值
- python selenium
- QT小结
- 程序员怎样迈出从5K到1W的重要一步
- Error:Execution failed for task ':app:dexDebug'.
- POJ1012 Joseph
- Cocos2d-x 中Android.mk自动生成.cpp与.c类路径
- Servlet方法对象总结
- 在Android中使用SharedPreferences保存简单的数据