下班前最後一件事寫個選擇排序。

灩灩隨波千萬裏,何處春江無月明

 

原理:把第一個元素依次和後面的所有元素進行比較。比較完一遍比較後,最小值就會出現在最前面, 依次類推。

func main() {
	arr := [...]int{79, 1, 90, 38, 76, 33, 17, 88}
	sortArrXZ1(arr[:])
	fmt.Println("排序完成:", arr)
}
func sortArrXZ1(arr []int) {
	fmt.Println("傳入數組:", arr, "長度:", len(arr))
	for i := 0; i < len(arr)-1; i++ {
		minIndex := i
		for j := i + 1; j < len(arr); j++ {
			if arr[minIndex] > arr[j] {
				minIndex = j
			}
		}
		arr[i], arr[minIndex] = arr[minIndex], arr[i]
	}
}

輸出打印

傳入數組: [79 1 90 38 76 33 17 88] 長度: 8
第 1 趟比較完後的數組: [1 79 90 38 76 33 17 88]
第 2 趟比較完後的數組: [1 17 90 38 76 33 79 88]
第 3 趟比較完後的數組: [1 17 33 38 76 90 79 88]
第 4 趟比較完後的數組: [1 17 33 38 76 90 79 88]
第 5 趟比較完後的數組: [1 17 33 38 76 90 79 88]
第 6 趟比較完後的數組: [1 17 33 38 76 79 90 88]
第 7 趟比較完後的數組: [1 17 33 38 76 79 88 90]
排序完成: [1 17 33 38 76 79 88 90]

 

 

發佈了170 篇原創文章 · 獲贊 109 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章