我試圖找到數組中的最小數值,但它並不總是正常工作。這是我寫的代碼:查找數組中int數的最小值(Java)
for (int i=0; i < arr.length; i++) {
min = arr[i];
for (j=0; j < arr.length; j++) {
if (arr[j] < arr[0]) {
min = arr[j];
}
}
}
有人可以糾正我嗎?
我試圖找到數組中的最小數值,但它並不總是正常工作。這是我寫的代碼:查找數組中int數的最小值(Java)
for (int i=0; i < arr.length; i++) {
min = arr[i];
for (j=0; j < arr.length; j++) {
if (arr[j] < arr[0]) {
min = arr[j];
}
}
}
有人可以糾正我嗎?
沒有必要爲外循環,它只能運行一次,你不使用i
反正。你爲什麼擁有它?
對於內循環,您需要與最小值進行比較。現在你將它與數組中的第一個元素進行比較,它不一定是最小值。
min = arr[0];
for (j=0; j < arr.length; j++) {
if (arr[j] < min) { //<---fix is here
min = arr[j];
}
}
您也可以在1開始循環,因爲你並不需要比較arr[0]
對自身(它只是分配給min
)
要檢查在每次迭代中的第一個元素,你基本上需要檢查最小值
if (arr[j] < min) {
min = arr[j];
}
int min = arr[0];
for(int num : arr) {
if (num < min){
min = num;
}
}
分鐘現在包含最小值。
是安全的我會添加空檢查和數組長度檢查。 – Jay 2014-12-05 13:44:02
這是一個通用的算法。你可以爲它編寫代碼。
將數組中的第一項存儲爲當前最小值。
從第二項(索引1)開始遍歷數組。
對於數組的每次迭代,檢查當前項目是否比最小值小 。如果是,則將其存儲爲新的最小值。
一旦循環結束,你有最小的!
如果arr
非原始數字組成的數組,我建議
java.util.Collections.min(java.util.Arrays.asList(arr));
因爲這將是更簡單的維護。如果你需要同時拉出最小值和最大值,那麼在恢復手動編碼方面有一些理由,但如果有可用的庫函數,我建議不要手動編碼循環。
無論如何,你應該檢查arr != null
和第零個元素的存在。
它將被使用java.util.Arrays中類做的一種方式:
實施例:
public class ArraySort {
public static void main(String[] args) {
int[] array = {12, 4, 6, 1, 56, 21, 77};
Arrays.sort(array);
System.out.println(array[0]);
}
}
從Java文檔,Arrays.sort(INT [])指定的數組進行排序按數字升序排列。
所以這裏的輸出打印1。
您正在執行排序操作('O(nlogn)'),但您可以在線性時間內執行。 – 2014-12-05 13:44:46
試試這個:
int min = arr[0];
for(int j=1;j<arr.length;j++)
{
if(min>arr[j])
{
min= arr[j];
}
}
System.out.println("min no is "+min);
一種選擇是那種陣列,並且獲得的第一個元素:
import java.util.Arrays;
...
int ints[] = {30,5,7,4,10};
Arrays.sort(ints);
int min = ints[0];
int max = ints[ints.length - 1];
int min=0;
for (int i = 0; i < array.length; i++) {
if (min > array[i]) {
min = array[i];
}
}
System.out.println(min);
簡單的方式來獲得MAX和MIN
爲了得到MIN
System.out.println(getMinValue(your array));
和MAX
System.out.println(getMaxValue(your array));
什麼是for循環 – Joe 2014-12-05 13:36:32
'ARR使用您的外的[j]的
2014-12-05 13:37:31
可能重複[Java:最大/最小值在數組中?](http://stackoverflow.com/questions/1484347/java-max-min-value-in-an-array) – 2014-12-05 13:43:24