go实现选择排序
2020-07-07 14:55
176 查看
package main import ( "fmt" "math/rand" "time" ) func selectSort(data []int) { size := len(data) var index int //外层循环,每次得到 data[i] ~ data[size-1] 之间的最小值,存放在 data[i] for i := 0; i < size-1; i++ { index = i /*内存循环,暂且将data[i]当做 data[i] ~ data[size-1] 之间的最小值 使用index记录这个最小值的标号 依次使用data[index] 和 data[i+1] ~ data[size-1] 之间的所有元素作比较 如果 data[index] > data[j],则 index = j 一趟内存循环执行完,index 中就已经记录了 data[i] ~ data[size-1] 之间最小元素的标号 */ for j := i + 1; j < size; j++ { if data[index] > data[j] { index = j } } //将data[i] 与 data[index] 交换,从而将 data[i] ~ data[size-1] 中的最小值存放在 data[i] 中 data[i], data[index] = data[index], data[i] } } func main() { rand.Seed(time.Now().UnixNano() / 1000) arr := [100]int{} for i := 0; i < 100; i++ { arr[i] = rand.Intn(1000) } fmt.Println(arr) selectSort(arr[:]) fmt.Println(arr) }
相关文章推荐
- 图解算法练习--选择排序(Go实现)
- 排序算法(C++/JS/PYTHON/GO/JAVA/PHP实现)--选择排序(二)
- 算法代码实现之选择排序,Golang(Go语言)实现
- java选择排序实现
- 基本排序算法java实现之选择排序
- python实现选择排序
- JS实现排序算法(一)——选择排序
- 选择排序--JAVA实现
- 二叉搜索树的根插入、选择、删除、合并、排序等操作的实现
- python实现插入排序和选择排序
- 用c语言实现选择排序
- 最简单之Java实现冒泡排序、选择排序、插入排序、希尔排序、归并排序和快速排序(转载请注明出处)
- 几种常见排序算法之Java实现(插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序)
- C程序中实现排序的选择法和起泡法
- 程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)
- 排序算法(三)冒泡、选择排序的Python实现及算法优化详解 推荐
- java实现选择排序和冒泡排序
- php实现排序算法第(二)篇 插入排序 选择排序
- 用php实现选择排序的解决方法
- 排序算法之选择排序的思想以及Java实现