选择排序

选择排序的思想是:

每次选择未排序中的最值,将其放到已排序的尾部。

优势:可就地替换,不占用额外空间

时间复杂度:O(n x n)

空间复杂度:O(1)

// 选择排序
func selectSort(nums []int) []int {
	n := len(nums)

	for i := 0; i < n; i++ {
		minIdx := i
		for j := i + 1; j < n; j++ {
			if nums[j] < nums[minIdx] {
				minIdx = j
			}
		}
		// swap
		nums[i], nums[minIdx] = nums[minIdx], nums[i]
	}

	return nums
}

最后更新于