#include <iostream>
using namespace std;
void print_array(int* array, int size)
{
for (int i=0; i<size; i++)
cout << array[i] << " ";
cout << endl;
}
// 比逐个比较每两个省去一次比较时间
void get_min_max(int* array, int size, int& min, int& max)
{
min = max = array[0];
int minIdx = 0, maxIdx = 0;
for (int i=0; i<size-1; i+=2)
{
if (array[i] < array[i+1]) // 一次比较
{
minIdx = i;
maxIdx = i+1;
}
else
{
minIdx = i+1;
maxIdx = i;
}
if (array[minIdx] < min) // 二次比较
min = array[minIdx];
if (array[maxIdx] > max) // 三次比较
max = array[maxIdx];
}
if (size % 2 != 0)
{
if (array[size-1] < min)
min = array[size-1];
if (array[size-1] > max)
max = array[size-1];
}
}
void main()
{
int* array = 0;
int size;
cout << "input the size:";
cin >> size;
array = new int[size];
for (int i=0; i<size; i++)
array[i] = rand()%1000;
print_array(array, size);
int min, max;
get_min_max(array, size, min, max);
cout << "min:" << min << " max:" << max << endl;
}
最大值&最小值
最新推荐文章于 2023-02-21 22:25:25 发布