[golang] 数据结构-简单选择排序
发布时间:2020-12-16 09:35:00 所属栏目:大数据 来源:网络整理
导读:原理 简单选择排序应该是最直观最容易理解的排序方法了。 直接从头开始一个一个去比,找出最小的放到最左边。再依次完成其他位的排序。 时间复杂度 比较次数固定为O(n^2),数据交换次数是0~n-1次 因为会交换不同位置相同数值的数据,所以选择排序并不稳定 代
原理
简单选择排序应该是最直观最容易理解的排序方法了。 直接从头开始一个一个去比,找出最小的放到最左边。再依次完成其他位的排序。 时间复杂度 代码实现 package main import ( "fmt" ) func main() { var length = 10 var mm = make(map[int]int,length) var o []int // 先准备一个顺序随机的数(qie)组(pian) for i := 0; i < length; i++ { mm[i] = i } for k,_ := range mm { o = append(o,k) } fmt.Println(o) // 两次循环找到最小的排前面 for i := 0; i < length; i++ { min := i for j := length - 1; j >= i; j-- { if o[j] < o[min] { min = j } } // 当前就是最小值时就不交换了 if min == i { continue } // 顺序交换 o[i] = o[i] + o[min] o[min] = o[i] - o[min] o[i] -= o[min] fmt.Println(o) } } 运行结果 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |