長期看我們報紙的讀者應該了解了基本的冒泡法或選擇法排序,但這都是在一維數組的基礎上進行的。今天給大家講一講二維數組排序的知識。
首先什么是一維數組呢?一維數組是由數字組成的以單純的排序結構排列的結構單一的數組。一維數組是計算機程序中最基本的數組。類型標識符:數組名[常量表達式]。
二維數組本質上是以數組作為數組元素的數組,即“數組的數組”,類型說明符:數組名[常量表達式][常量表達式]。
二維數組又稱為矩陣,行列數相等的矩陣稱為方陣。

對稱矩陣:a[i][j] = a[j][i]
對角矩陣:n階方陣主對角線外都是零元素
二維數組中的數字以矩陣的方式,“I”代表行數,“J”代表列數,例如圖1矩陣中a[0][0]就是代表85。
今天我們用JAVA處理二維數組從小到大排序。首先在JAVA語言中已經定義了很多可用的方法,比如把數組中的內容打印出來,可以使用Arrays的toString方法,只需要一行直接省略了以往的循環語句就能打印出來。而且JAVA自帶排序,使用Arrays.sort方法就可以直接進行數組從小到大的排序。


那么接下來我們需要解決的問題就是,怎樣將二維數組進行從小到大的排序。
最容易想到的辦法是將二維數組轉化為一維數組,這里介紹兩種轉換方法。
1. 【arraycopy(Object src, int srcPos, Object dest, int destPos, int length)】
src代表原數組;srcPos代表從元數據的起始位置開始;dest代表目標數組;destPos代表目標數組的起始位置;length代表要copy的數組的長度。
2. 還有一種比較考驗數學能力的方法。二位數組是:數組名[常量表達式][常量表達式]。
相應的轉化公式為
num2[i*4+j]=num1[i][j];

這個方法比較通用,需要你有一定的數學基礎,轉一個思路就肯定可以想出來了(如圖2)。
二維數組轉成一維數組還是有一定的難度的,適合有編程基礎的人,大家也需要努力學習,快樂編程。
代碼如圖3,運行效果如圖4。