展开全部
一种方32313133353236313431303231363533e59b9ee7ad9431333335336435法是遍历两次数组,需要进行2×N次比较;另一种方法是将数组中的元素分组,按顺序将数组中相邻的两个数分在同一组,再进行逐一比较,这样的比较次数是1.5N次。
这里我就用1.5N次的方法来作下比较:public int getMin(int[] arr) {
// 数组大小
int size = arr.length;
int min = 0;
// 如果数组长度为1
if (size == 1) {
min = arr[0];
return min;
}
// 获取前面一个分组的最小值并作为初始化的最小值
min = arr[0] <= arr[1] ? arr[0] : arr[1];
for(int i=2; i
// 防止数组越界
if (i+1 >= size) {
break;
}
int tempMin = arr[i] <= arr[i+1] ? arr[i] : arr[i+1];
if (tempMin
min = tempMin;
}
}
// 如果数组元素是奇数个,那么最后一个元素就不在其中
if (size%2 != 0) {
if (arr[size-1]
min = arr[size-1];
}
}
return min;
}