Go語言方法練習--實現二維陣列轉置
轉置概念: 矩陣的行列互換得到的新矩陣稱為轉置矩陣,而二維陣列就是我們通常說的矩陣。
需求:使用Go語言方法實現二維陣列(3*3)的矩陣的轉置
轉置前:
[[ 0, 1, 2],
[ 4, 5, 6],
[ 8, 9, 10]]
轉置後
[[ 0, 4, 8],
[ 1, 5, 9],
[ 2, 6, 10]]
//使用交換值實現 func (arrayNum ) Upserver(Aaaay3 [3][3]int){ for i :=0; i<len(Aaaay3);i++{ forj:=0;j<i;j++{ Aaaay3[i][j],Aaaay3[j][i] = Aaaay3[j][i],Aaaay3[i][j] } } fmt.Println(Aaaay3) } //使用臨時變數 func (arrayNum ) Upserver2(Aaaay3 [3][3]int){ temparry :=[3][3]int{} for i :=0; i<len(Aaaay3);i++{ forj:=0;j<i;j++{//限制j<i 避免多次迴圈 temparry[i][j]=Aaaay3[i][j] Aaaay3[i][j] =Aaaay3[j][i] Aaaay3[j][i]=temparry[i][j] } } fmt.Println(Aaaay3) }
package main import "fmt" typeNum struct { } func (arrayNum ) Upserver(Aaaay3 [3][3]int){ for i :=0; i<len(Aaaay3);i++{ forj:=0;j<i;j++{ Aaaay3[i][j],Aaaay3[j][i] = Aaaay3[j][i],Aaaay3[i][j] } } fmt.Println(Aaaay3) } func (arrayNum ) Upserver2(Aaaay3 [3][3]int){ temparry :=[3][3]int{} for i :=0; i<len(Aaaay3);i++{ forj:=0;j<i;j++{ temparry[i][j]=Aaaay3[i][j] Aaaay3[i][j] =Aaaay3[j][i] Aaaay3[j][i]=temparry[i][j] } } fmt.Println(Aaaay3) } func main() { arrinfo :=Num{ } aeey :=[3][3]int{ {0, 1, 2} ,/*第一行索引為 0 */ {4, 5, 6} ,/*第二行索引為 1 */ {8, 9, 10}} fmt.Println(aeey) fmt.Println("****") arrinfo.Upserver(aeey) arrinfo.Upserver2(aeey) }