要將array內的資料交換的方式有很多種,但我認為最直覺的是以下兩種。
第一種:建立一個新的陣列然後將原本陣列裡的資料由後往前抓出來建入,最後將心陣列的資料複製到舊陣列程式碼如下:
Step 1 先建立一個陣列a,裡面依序有1-5的整數,接著建立另一個陣列b,
並給予陣列b的記憶體大小跟a的一樣,用a.length,來表示陣列b的記憶體大小。
Step2 進入for迴圈,條件式i 從第零項開始,且i 要小於a陣列的範圍,i++
接著將a陣列裡面的資料從後開始複製到b陣列裡。
Step3 將矩陣b的資料複製回矩陣a。
此時矩陣a的資料已經反轉過來變成5, 4, 3, 2, 1
但這種方法所要好富的時間複雜度比較多,因此這裡有另一個方法,
將1, 2, 3, 4, 5反轉成5, 4, 3, 2, 1可以想成1、5對調,2、4對調,這樣程式只需要執行兩個動作,需要花費的時間比上一個方法少了許多,程式實作如下:
Step1建立一個陣列a,裡面依序有1-5的整數。
Step2進入for迴圈,條件式i 從第零項開始,且i 要小於a陣列範圍的一半,因為只需要調換兩個數,i++。
Step3 宣告一著整數j,從陣列a的後面讀取資料。
Step4 執行swap方法,將1、5對調,2、4對調。
此時陣列裡的資料已經完成對調
程式全碼如下
第一種方法
第二種方法