Go语言方法练习--实现二维数组转置

GoDevops · · 3426 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

 转置概念:矩阵的行列互换得到的新矩阵称为转置矩阵,而二维数组就是我们通常说的矩阵。

需求:使用Go语言方法实现二维数组(3*3)的矩阵的转置

转置前:

[[ 0,  1,  2],

 [ 4,  5,  6],

[ 8,  9, 10]]                                

  转置后                                      

  [[ 0,  4,  8],

   [ 1,  5,  9],

   [ 2,  6, 10]]




//使用交换值实现

func (array  Num ) Upserver(Aaaay3 [3][3]int)  {
    for i :=0; i<len(Aaaay3);i++{
      for  j:=0;j<i;j++{
         Aaaay3[i][j],Aaaay3[j][i] = Aaaay3[j][i],Aaaay3[i][j]
      }
    }
    fmt.Println(Aaaay3)
}


//使用临时变量
func (array  Num ) Upserver2(Aaaay3 [3][3]int)  {
   temparry :=[3][3]int{}
   for i :=0; i<len(Aaaay3);i++{
      for  j:=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"

type   Num struct {

}

func (array  Num ) Upserver(Aaaay3 [3][3]int)  {
    for i :=0; i<len(Aaaay3);i++{
      for  j:=0;j<i;j++{
         Aaaay3[i][j],Aaaay3[j][i] = Aaaay3[j][i],Aaaay3[i][j]
      }
    }
    fmt.Println(Aaaay3)
}

func (array  Num ) Upserver2(Aaaay3 [3][3]int)  {
   temparry :=[3][3]int{}
   for i :=0; i<len(Aaaay3);i++{
      for  j:=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)
}


image.png


有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:GoDevops

查看原文:Go语言方法练习--实现二维数组转置

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3426 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传