领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

GO学习 Array类型和排序 go语言排序函数

nixiaole 2024-11-10 12:30:56 知识剖析 29 ℃

数组的类型

package main
import "fmt"


func main() {
  /*
  数据类型:
      基本类型:整数,浮点,布尔,字符串
      复合类型:array,slice,map,struct,pointer,function,channel...


  数组的数据类型:
    [size]type


  值类型:理解为存储的数值本身
    将数据传递给其他的变量,传递的是数据的备份(副本)
      int,float,string,bool,array
  引用类型:理解为存储数据的内存地址
      slice,map
  */


  //1.数据类型
  num := 10
  fmt.Printf("%T\n",num)


  arr1 :=[4]int{1,2,3,4}
  arr2 :=[3]float64{2.15,3.14,6.58}
  arr3 :=[4]int{5,6,7,8}
  arr4 :=[2]string{"hello","world"}
  fmt.Printf("%T\n",arr1)//[4]int
  fmt.Printf("%T\n",arr2)//[3]float64
  fmt.Printf("%T\n",arr3)//[4]int
  fmt.Printf("%T\n",arr4)//[2]string


  //2.赋值
  num2 := num //值传递
  fmt.Println(num,num2) //10 10
  num2 = 20
  fmt.Println(num,num2) //10 20


  //数组
  arr5 := arr1 //值传递
  fmt.Println(arr1)
  fmt.Println(arr5)


  arr5[0] = 100
  fmt.Println(arr1)
  fmt.Println(arr5)


  a := 3
  b := 4
  fmt.Println(a == b) //比较a和b的数值是否相等
  fmt.Println(arr5 == arr1) //比较数字的对应下标位置的数值是否相等
  //fmt.Println(arr1 == arr2) // invalid operation: arr1 == arr2 (mismatched types [4]int and [3]float64)


}


运行输出:

int
[4]int
[3]float64
[4]int
[2]string
10 10
10 20
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[100 2 3 4]
false
false


Process finished with exit code 0


数组排序

package main


import "fmt"


func main() {
  /*
  数组的排序:
    让数组中的元素具有一定的顺序


    arr :=[5]int{15,23,8,10,7}
      升序:[7,8,10,15,23]
      降序:[23,15,10,8,7]


  排序算法:
    冒泡排序,插入排序,选择排序,希尔排序,堆排序,快速排序。。。。。


  冒泡排序:(Bubble Sort)
    依次比较两个相邻的元素,如果他们的顺序(例:从小到大)就把他们交换过来


  */


  arr :=[5]int{15,23,8,10,7}
  ////第一轮排序
  //for j :=0;j<4;j++{
  //  if arr[j] > arr[j+1]{
  //    arr[j],arr[j+1] = arr[j+1],arr[j]
  //  }
  //}
  //fmt.Println(arr)
  //
  ////第二轮排序
  //for j :=0;j<3;j++{
  //  if arr[j] > arr[j+1]{
  //    arr[j],arr[j+1] = arr[j+1],arr[j]
  //  }
  //}
  //fmt.Println(arr)


  fmt.Println("........")


    //总结
    for i :=1;i < len(arr);i++{
    for j :=0;j<len(arr)-i;j++{
      if arr[j] > arr[j+1]{
        arr[j],arr[j+1] = arr[j+1],arr[j]
      }
    }
    fmt.Println(arr)
  }


}

运行输出:

........
[15 8 10 7 23]
[8 10 7 15 23]
[8 7 10 15 23]
[7 8 10 15 23]


Process finished with exit code 0


读完点个赞,给我的坚持更新注入新的活力。

2022.05.12 日更 68/365 天

公众号:3天时间


往期同类文章:

GO学习 Array

GO学习 goto语句和随机函数

GO学习 for循环练习

GO学习 多重for循环

GO学习 for循环

Tags:

最近发表
标签列表