GO學(xué)習(xí) Array類型和排序

數(shù)組的類型

package main

import "fmt"

func main() {

? /*

? 數(shù)據(jù)類型:

? ? ? 基本類型:整數(shù),浮點,布爾,字符串

? ? ? 復(fù)合類型:array,slice,map,struct,pointer,function,channel...

? 數(shù)組的數(shù)據(jù)類型:

? ? [size]type

? 值類型:理解為存儲的數(shù)值本身

? ? 將數(shù)據(jù)傳遞給其他的變量,傳遞的是數(shù)據(jù)的備份(副本)

? ? ? int,float,string,bool,array

? 引用類型:理解為存儲數(shù)據(jù)的內(nèi)存地址

? ? ? slice,map

? */

? //1.數(shù)據(jù)類型

? 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

? //數(shù)組

? 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的數(shù)值是否相等

? fmt.Println(arr5 == arr1) //比較數(shù)字的對應(yīng)下標(biāo)位置的數(shù)值是否相等

? //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

數(shù)組排序

package main

import "fmt"

func main() {

? /*

? 數(shù)組的排序:

? ? 讓數(shù)組中的元素具有一定的順序

? ? 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("........")

? ? //總結(jié)

? ? 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學(xué)習(xí) Array

GO學(xué)習(xí) goto語句和隨機函數(shù)

GO學(xué)習(xí) for循環(huán)練習(xí)

GO學(xué)習(xí) 多重for循環(huán)

GO學(xué)習(xí) for循環(huán)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容