//寻找数组中的最大值和最小值
public class Test
{
// 需要查找的数组
static int[] arr =
{
9, 5, 1, 8, 2, 3, 4, 6, 7
};
// 数组的长度
static int maxIndex = arr.length - 1;
public static void main(String[] args)
{
// find1(arr);
// find2(arr);
// find3(arr);
find4(arr);
}
// 1.排序数组,比较 n*n次
static void find1(int[] arr)
{
Arrays.sort(arr);
System.out.println("find1\t最小值:" + arr[0] + ",最大值:" + arr[maxIndex]);
}
// 2.扫描一遍数组找出最大数,最小数,比较2n次
static void find2(int[] arr)
{
int maximum = arr[0];// 最大值
int minimum = arr[0];// 最小值
for (int i = 0; i <= maxIndex; i++)
{
if (minimum > arr[i])
{
minimum = arr[i];
}
if (maximum < arr[i])
{
maximum = arr[i];
}
}
System.out.println("find2\t最小值:" + minimum + ",最大值:" + maximum);
}
// 3.数组挨着的两位分为一组,比较大小,小的在下标为偶数的位置,大的在下标为奇数的位置;然后从偶数位置查找最小值,从奇数位置查找最大值;
// 比较1.5n次
static void find3(int[] arr)
{
int temp;
for (int i = 0; i <= maxIndex - 1; i += 2)
{
if (arr[i] > arr[i + 1])
{
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
System.out.println("两个一组排序后数组:" + Arrays.toString(arr));
int maximum = arr[0];// 最大值
int minimum = arr[0];// 最小值
for (int i = 0; i <= maxIndex - 1; i++)
{
// 偶数位搜索最小值
if (minimum > arr[i])
{
minimum = arr[i];
}
++i;
// 奇数位搜索最大值
if (maximum < arr[i])
{
maximum = arr[i];
}
}
System.out.println("find3\t最小值:" + minimum + ",最大值:" + maximum);
}
}
编程之美_009寻找数组中的最大值和最小值
最新推荐文章于 2024-01-20 20:45:38 发布