灩灩隨波千萬裏,何處春江無月明
原理:把第一個元素依次和後面的所有元素進行比較。比較完一遍比較後,最小值就會出現在最前面, 依次類推。
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]