天天看點

【資料結構與算法】數組應用2:矩陣轉置(Java實作)

    程式代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

<code>package</code> <code>chapter02;</code>

<code>import</code> <code>java.util.Arrays;</code>

<code>/*</code>

<code> </code><code>* 矩陣轉置的實作(簡單版)</code>

<code> </code><code>*/</code>

<code>public</code> <code>class</code> <code>CH02_04 {</code>

<code>    </code><code>public</code> <code>static</code> <code>void</code> <code>main(String[] args) {</code>

<code>        </code><code>int</code><code>[][] arr = </code>

<code>            </code><code>{</code>

<code>                    </code><code>{</code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>},</code>

<code>                    </code><code>{</code><code>4</code><code>, </code><code>5</code><code>, </code><code>6</code><code>},</code>

<code>                    </code><code>{</code><code>7</code><code>, </code><code>8</code><code>, </code><code>9</code><code>}</code>

<code>            </code><code>};</code>

<code>        </code><code>int</code> <code>rows = arr.length;</code>

<code>        </code><code>int</code> <code>cols = arr[</code><code>0</code><code>].length;</code>

<code>        </code><code>int</code><code>[][] arrResult = </code><code>new</code> <code>int</code><code>[cols][rows];</code>

<code>        </code> 

<code>        </code><code>//填充結果數組</code>

<code>        </code><code>for</code><code>(</code><code>int</code> <code>i = </code><code>0</code><code>; i &lt; arrResult.length; i++){</code>

<code>            </code><code>Arrays.fill(arrResult[i], </code><code>0</code><code>);</code>

<code>        </code><code>}</code>

<code>        </code><code>//輸出矩陣轉置前的矩陣</code>

<code>        </code><code>for</code><code>(</code><code>int</code> <code>i = </code><code>0</code><code>; i &lt; arr.length; i++){</code>

<code>            </code><code>System.out.println(Arrays.toString(arr[i]));</code>

<code>        </code><code>//轉置矩陣</code>

<code>        </code><code>for</code><code>(</code><code>int</code> <code>i = </code><code>0</code><code>; i &lt; rows; i++){</code>

<code>            </code><code>//外循環,從原來矩陣的第i行開始</code>

<code>            </code><code>for</code><code>(</code><code>int</code> <code>j = </code><code>0</code><code>; j &lt; cols; j++){</code>

<code>                </code><code>//内循環,轉置矩陣</code>

<code>                </code><code>arrResult[j][i] = arr[i][j];</code>

<code>            </code><code>}</code>

<code>        </code><code>System.out.println();</code>

<code>        </code><code>//輸出轉置後的矩陣</code>

<code>            </code><code>System.out.println(Arrays.toString(arrResult[i]));</code>

<code>    </code><code>}</code>

<code>}</code>

    執行結果如下:

<code>[</code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>]</code>

<code>[</code><code>4</code><code>, </code><code>5</code><code>, </code><code>6</code><code>]</code>

<code>[</code><code>7</code><code>, </code><code>8</code><code>, </code><code>9</code><code>]</code>

<code>[</code><code>1</code><code>, </code><code>4</code><code>, </code><code>7</code><code>]</code>

<code>[</code><code>2</code><code>, </code><code>5</code><code>, </code><code>8</code><code>]</code>

<code>[</code><code>3</code><code>, </code><code>6</code><code>, </code><code>9</code><code>]</code>

<code></code>

本文轉自 xpleaf 51CTO部落格,原文連結:http://blog.51cto.com/xpleaf/1976528,如需轉載請自行聯系原作者