java如何在获取元素号的同时找到数组中的最小数
我有个问题一直困扰着我。找到数组中的最小数很容易,但这是我的问题;当您在数组中找到最小的数字时,最小的数字将成为数组的第[0]个元素。 我想要的是,我想要找到最小的数字,以及它是哪个元素。像这样
a[0] a[1] a[2] a[3]
5 20 1 12
我想让我的代码写1 is the smallest number and it's a[2] element of array
我只想从那里得到2,这样我就可以在代码的其余部分使用它了。任何帮助都将不胜感激。谢谢你们
编辑:我以前试过这种方法
int[] dizi = {5 , 12, 20, 1};
int gecici;
for (int i=0; i<4; i++) {
for (int y = 1; y<4; y++) {
if (dizi[i] > dizi[y]) {
gecici = dizi[i];
dizi[i] = dizi[y];
dizi[y] = gecici;
}
}
}
# 1 楼答案
# 2 楼答案
如果要查找从小到大的每个元素及其相应的索引,则可以执行以下操作:
上述方法的复杂性为时间复杂性
O(n log n)
。但是,如果您只需要知道最小值和它的索引,那么您可以轻松地在O(n)
时间复杂度中检索它,如下所示:# 3 楼答案
# 4 楼答案
试试这个
如果你的数组是双倍的,那么
你可以用一种方法来做
像这样打电话
# 5 楼答案
在这种情况下,您可以利用
IntStream.range
:例如: