初始化數組的四種方式
目錄
1. 問題描述
在初學Raptor時,經常會遇到如下問題:對10個同學的成績進行排序、對一組數進行排序、斐波那契數列等等。這些涉及到一系列數據的問題往往可以利用數組來比較方便的解決。通過利用數組,緩解了定義多個變量的困擾,下面以一維數組爲例,簡要介紹數組初始化數據的四種方式,並簡要介紹其優缺點。
2. 四種方式
1) 順序賦值初始化
數組名爲a,其中有8個元素,分別是0-7,如下圖所示:
優點:
對於某些輸入不會變動的數據,可以這樣輸入,比如如果數組a代表的是八進制的8個基數,那麼就是永遠不會變動的,所以可以這樣定義。上面的例子不是很好,如果是16進制可能會更有說服力,因爲16進制的基數不光有數組,還有字母。
缺點:
喪失了數組的優勢,一次賦值後,後面如果想要使用就要重新賦值,及其不方便,所以這個方法如果沒有必要使用就不要使用。
2) 循環輸入初始化
數組名爲b,通過輸入數組的長度變量n,再通過循環輸入創建數組,如下圖所示:
優點:
充分利用了數組能組織數據的這一特點,對於數組長度和輸入數據都不確定的問題,這個方法非常有用。
缺點:
① 某些問題對於輸入數據沒什麼要求的情形,還要自動手動輸入,有些不太方便;
② 如果讓初始化的數組結果爲全部爲0,通過更改輸入框爲賦值框可以實現,但是不是最簡單的方法,最簡單的方法見方式4。
3) 循環隨機初始化
數組名爲c,數組長度n可以自己輸入,數組中的元素爲[0, 99]的隨機整數(關於生成任意範圍的隨機數,可以參考我之前的博客:Raptor中生成任意範圍的隨機數),如下圖所示:
優點:
① 對於有些問題,題目要求數組中的元素爲一定範圍的隨機數,所以必須用這種方式;
② 對於輸入沒什麼要求的問題,可以用隨機初始化的方法,比如金塊問題、數據排序問題;
③ 節省了手工輸入數據的時間,對於驗證某些算法的可行性時,經常採用隨機初始化數組的方式,比如排序算法。
缺點:
基本上沒什麼缺點,這種方式可應對一大類對數組數據沒有要求的問題
4) 以0初始化數組
數組名爲d,數組長度n通過輸入指定,數組初始值全部爲0,如下圖所示:
優點:
當數組初始值要求全部爲0時,此方法非常便捷!
缺點:
不能拓展到數組初始值全部爲非0值的情形。
3. 運行實例
下面是主圖和用於展示數據的子程序:
結果: