golang 实现选择排序
2016-07-30 14:16
176 查看
什么是选择排序
它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
2 . 实例
3 代码实现
它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
2 . 实例
[10,5,78,90,66,4] //这是原始数组 //开始,第一次以地一个元素为起点,找出最小的数,然后交换 [4 ,5 78 , 90 ,66 ,10 ] // 这时候之前第一个元素就和最小的数交换了位置 // 接着以 第二个元素为起点,找出最小的数,然后交换 [4 , 5 , 78 , 90 , 66 , 10] //5 就是最小的,所以还在第二个位置 [4 , 5 , 10 , 90 , 66 , 78] [4 , 5, 10 , 66 , 90 , 78] [4 , 5 ,10 , 66 , 78 , 90]
3 代码实现
func selectSort(arr []int) { length := len(arr) for i := 0; i < length; i++ { min := i for j := (i + 1); j < length; j++ { if arr[min] > arr[j] { min = j } } // fmt.Println(min) if min != i { temp := arr[i] arr[i] = arr[min] arr[min] = temp } } fmt.Println(arr) } func main() { arr := []int{45, 10, 0, 6, 5, 20} // fmt.Println(arr[5]) selectSort(arr) }
相关文章推荐
- Go 语言 Channel 实现原理精要
- Go语言将支持Android
- Golang实现的聊天程序服务端和客户端代码分享
- Java数据结构及算法实例:选择排序 Selection Sort
- Java中的数组排序方式(快速排序、冒泡排序、选择排序)
- Java经典算法汇总之选择排序(SelectionSort)
- golang与php实现计算两个经纬度之间距离的方法
- golang与PHP输出excel示例
- golang解析xml的方法
- Golang学习笔记(三):控制流
- golang实现unicode转换为字符串string的方法
- Golang学习笔记(二):类型、变量、常量
- golang简单获取上传文件大小的实现代码
- Golang中的sync.WaitGroup用法实例
- PHP简单选择排序算法实例
- C语言选择排序算法及实例代码
- VC++实现选择排序算法简单示例
- Go语言struct类型介绍
- golang使用正则表达式解析网页
- Golang极简入门教程(三):并发支持