長期看我們報紙的讀者應該了解了基本的冒泡法或選擇法排序,但這都是在一維數(shù)組的基礎上進行的。今天給大家講一講二維數(shù)組排序的知識。
首先什么是一維數(shù)組呢?一維數(shù)組是由數(shù)字組成的以單純的排序結(jié)構(gòu)排列的結(jié)構(gòu)單一的數(shù)組。一維數(shù)組是計算機程序中最基本的數(shù)組。類型標識符:數(shù)組名[常量表達式]。
二維數(shù)組本質(zhì)上是以數(shù)組作為數(shù)組元素的數(shù)組,即“數(shù)組的數(shù)組”,類型說明符:數(shù)組名[常量表達式][常量表達式]。
二維數(shù)組又稱為矩陣,行列數(shù)相等的矩陣稱為方陣。
對稱矩陣:a[i][j] = a[j][i]
對角矩陣:n階方陣主對角線外都是零元素
二維數(shù)組中的數(shù)字以矩陣的方式,“I”代表行數(shù),“J”代表列數(shù),例如圖1矩陣中a[0][0]就是代表85。
今天我們用JAVA處理二維數(shù)組從小到大排序。首先在JAVA語言中已經(jīng)定義了很多可用的方法,比如把數(shù)組中的內(nèi)容打印出來,可以使用Arrays的toString方法,只需要一行直接省略了以往的循環(huán)語句就能打印出來。而且JAVA自帶排序,使用Arrays.sort方法就可以直接進行數(shù)組從小到大的排序。
那么接下來我們需要解決的問題就是,怎樣將二維數(shù)組進行從小到大的排序。
最容易想到的辦法是將二維數(shù)組轉(zhuǎn)化為一維數(shù)組,這里介紹兩種轉(zhuǎn)換方法。
1. 【arraycopy(Object src, int srcPos, Object dest, int destPos, int length)】
src代表原數(shù)組;srcPos代表從元數(shù)據(jù)的起始位置開始;dest代表目標數(shù)組;destPos代表目標數(shù)組的起始位置;length代表要copy的數(shù)組的長度。
2. 還有一種比較考驗數(shù)學能力的方法。二位數(shù)組是:數(shù)組名[常量表達式][常量表達式]。
相應的轉(zhuǎn)化公式為
num2[i*4+j]=num1[i][j];
這個方法比較通用,需要你有一定的數(shù)學基礎,轉(zhuǎn)一個思路就肯定可以想出來了(如圖2)。
二維數(shù)組轉(zhuǎn)成一維數(shù)組還是有一定的難度的,適合有編程基礎的人,大家也需要努力學習,快樂編程。
代碼如圖3,運行效果如圖4。