Golang 數組元素排序



冒泡排序

package main

import "fmt"

func main() {
	arrlist := [10]int{21,655,35,85,64,62,856,9748,963}
	fmt.Println("原數組元素為:",arrlist)
	for i:=0;i<len(arrlist)-1;i++ {
		for j:=0;j<len(arrlist)-1;j++ {
			if arrlist[j] > arrlist[j+1] {
				arrlist[j],arrlist[j+1] = arrlist[j+1],arrlist[j]
			}
		}
	}
	fmt.Println("排序后的數組為:",arrlist)
}

// 結果
原數組元素為: [21 655 35 85 64 62 856 9748 963 0]
排序后的數組為: [0 21 35 62 64 85 655 856 963 9748]


// -----------------用戶交互輸入-------------------- //
package main

import "fmt"

func main() {
	arrlist := [5]float64{}

	for i:=0;i<len(arrlist);i++ {
		var num float64
		fmt.Printf("請輸入第 %d 個數字:",i+1)
		fmt.Scan(&num)
		arrlist[i] = num
	}
	fmt.Println("原數組內容為:",arrlist)
        // 外層循環定義比較輪數
	for i:=0;i<len(arrlist)-1;i++ {
                // 內存循環定義每輪比較次數
		for j:=0;j<len(arrlist)-1;j++ {    // 或者:for j:=0;j<len(arrlist)-(i+1);j++
			if arrlist[j] > arrlist[j+1] {
                                // 兩數交換
				arrlist[j],arrlist[j+1] = arrlist[j+1],arrlist[j]
			}
		}
	}
	fmt.Println("排序后的數組為:",arrlist)
}

求最大值最小值

package main

import "fmt"

func main() {
	var (
		tmp int
		num int
		numbers [5]int
	)

	for i:=0;i<5;i++ {
		fmt.Printf("請輸入第 %d 個數字:",i+1)
		fmt.Scan(&num)
		numbers[i] = num
	}
	fmt.Println("數據錄入完成!")
	tmp=numbers[0]
	for j:=0;j<5;j++ {
		if numbers[j] > tmp {    // 改成 < 就是求最小值
			tmp = numbers[j]
		} else {
			continue
		}
	}
	fmt.Println("最大值是:",tmp)
}

// 結果
請輸入第 1 個數字:5
請輸入第 2 個數字:3
請輸入第 3 個數字:6
請輸入第 4 個數字:7
請輸入第 5 個數字:8
數據錄入完成!
最大值是: 8


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM