下班前最后一件事写个选择排序。

滟滟随波千万里,何处春江无月明

原理:把第一个元素依次和后面的所有元素进行比较。比较完一遍比较后,最小值就会出现在最前面, 依次类推。

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]

 

发布了155 篇原创文章 · 获赞 74 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/HYZX_9987/article/details/103864012