• 周六. 7 月 27th, 2024

    Golang实现选择排序

    root

    9 月 22, 2023 #算法, #选择排序
    package main
    
    import "log"
    
    func main() {
    	sArr := []int{10, 9, 8, 11, 15, -1, 38, 40}
    	log.Println(sArr)
    	sArr = selectSort(sArr)
    	log.Println(sArr)
    }
    
    func selectSort(arr []int) []int {
    	length := len(arr)
    	if length < 2 {
    		return arr
    	}
    	min := 0
    	for i := 0; i < length-1; i++ {
    		min = i
    		for j := i + 1; j < length; j++ {
    			if arr[min] > arr[j] {
    				min = j
    			}
    		}
    		if i != min {
    			arr[min], arr[i] = arr[i], arr[min]
    		}
    	}
    	return arr
    }
    

    选择排序的思路大概是这样的。 顺序先取第一个位置上的数作为最小数,然后在剩下的数中找到一个最小的与第一个位置的数交换,然后依次取第二个位置上的数作为最小数,在剩下的数中找到一个最小的数与第二个位置上的数交换,如此直到最后。

    root