第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

需要幫助理解這種插入方法的結(jié)構(gòu)

需要幫助理解這種插入方法的結(jié)構(gòu)

慕村225694 2022-06-08 17:08:22
我正在做一個涉及數(shù)組排序方法的家庭作業(yè),我們得到了方法,但我在理解這種插入排序方法的功能時遇到了一些麻煩。更具體地說,傳遞給方法的兩個變量所起的作用。據(jù)我了解, Key 變量描述了您希望將插入的數(shù)字放入的數(shù)組的索引,而該項目就是數(shù)字本身。在 main 中,我只要求用戶輸入兩個數(shù)字并將它們傳遞給方法,一個用于鍵,另一個用于項目。這是此段的給定代碼:public final void insertion(double Key, double Item){    if (arraySize == 0)    {        arr[0] = Item;    }    /* find the position for inserting the given item */    int position = 0;    while (position < arraySize &  Key > arr[position])    {        position++;    }    for (int i = arraySize; i > position; i--)    {        arr[i] = arr[i - 1];    }    arr[position] = Item;    arraySize = arraySize + 1;}但是,當(dāng)我將雙精度值傳遞給我已經(jīng)解釋過的方法時,我收到一條錯誤消息,指出索引(數(shù)組長度)超出了長度(數(shù)組長度)的范圍。顯然,我誤解了這種方法的目的或結(jié)構(gòu),我無法弄清楚。任何幫助,將不勝感激。我知道這是一個非常簡單的問題。編輯:這是我初始化數(shù)組的方式,給定的代碼與我的 main 方法位于一個單獨的類中:    public static double[] arr;    private int arraySize;    public sortedArrayAccess(int scale)    {        arr = new double[scale];        arraySize = arr.length;    }在我的主要方法中:    System.out.print("Enter an array size: ");    int d = sc.nextInt();    sortedArrayAccess test = new sortedArrayAccess(d);    for(int i=0;i<test.arr.length;i++)        {        System.out.print("Enter a number for index " + i + ": ");        double c = sc.nextDouble();        test.arr[i] = c;        }
查看完整描述

3 回答

?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗 獲得超3個贊

你如何初始化'arr'變量?

無論如何,問題是當(dāng)您創(chuàng)建陣列時 - 您應(yīng)該指定初始容量。每次將元素添加到數(shù)組中時,都會增加它。當(dāng)您嘗試請求索引為 i 的數(shù)組單元格時,如果數(shù)組容量小于 I - 您將收到 arrayOutOfBoundsException。


查看完整回答
反對 回復(fù) 2022-06-08
?
慕后森

TA貢獻(xiàn)1802條經(jīng)驗 獲得超5個贊

你的問題在這里:


if (arraySize == 0)

{

    arr[0] = Item;

}

您正在將 Item 分配給數(shù)組中的第一個元素。但數(shù)組大小必須為空,如if (arraySize == 0)


所以你有兩個選擇:


調(diào)整數(shù)組的大小(通過創(chuàng)建一個新的)

或返回錯誤


查看完整回答
反對 回復(fù) 2022-06-08
?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊

if (arraySize == 0)

    {

        arr[0] = Item;

    }

如您所知,在計算機(jī)科學(xué)中,索引從 0 開始。這意味著 arr[0] 是數(shù)組的第一個槽。如果 arraySize 為 0,則沒有這樣的索引 arr[0]。您的代碼嘗試將 Item 插入到大小為零的數(shù)組中。這會導(dǎo)致 Index out of bound 異常。


順便說一句,如果是值的排序算法,則不需要“Key”變量。你可以刪除它。但如果需要,您應(yīng)該按元素的鍵值對元素進(jìn)行排序。


例如,如果我們有:


element 1 -> key= 101 , value= 6

element 2 -> key= 201 , value= 9

element 3 -> key= 301 , value= 2

您不應(yīng)將它們排序為 element 3 < element 1 < element 2 您應(yīng)該將它們排序為: element 1 < element 2 < element 3 以便它們的鍵值。


換句話說,如果你想按它們的值對它們進(jìn)行排序,將鍵值作為參數(shù)傳遞是沒有意義的。


查看完整回答
反對 回復(fù) 2022-06-08
  • 3 回答
  • 0 關(guān)注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號