天天看点

【数据结构与算法】数组应用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,如需转载请自行联系原作者