冒泡排序和选择排序(Go语言实现)
2017-08-02 16:47
253 查看
冒泡排序和选择排序是排序算法中比较简单和容易实现的算法。冒泡排序的思想为:每一次排序过程,通过相邻元素的交换,将当前没有排好序中的最大(小)移到数组的最右(左)端。而选择排序的思想也很直观:每一次排序过程,我们获取当前没有排好序中的最大(小)的元素和数组最右(左)端的元素交换,循环这个过程即可实现对整个数组排序。
选择排序的平均时间复杂度比冒泡排序稍高,下面我们使用GO语言进行编写
冒泡排序
func bubble(num []int64) []int64 { flag := true for i := len(num) - 1; i >= 0; i-- { for j := 0; j < i; j++ { //冒泡,泡沫往上越大,较大的数上移 if num[j] > num[j + 1] { Swap(num, j, j + 1) flag=false } } //优化不必要的交换 if flag { break } } return num } func Swap(num []int64, i int, j int) { temp := num[i] num[i] = num[j] num[j] = temp }
选择排序
func Select(num []int64) []int64 { for i := 0; i < len(num) - 2; i++ { min:=num[i] local:= i for j := i + 1; j <= len(num)-1; j++ { if min>num[j] { min=num[j] local=j } } Swap(num,local,i) } return num } func Swap(num []int64, i int, j int) { temp := num[i] num[i] = num[j] num[j] = temp }
package main import "fmt" import "./sel" //变量在前,类型在后 func main() { num :=[]int64{11, 5, 25, 3, 42, 27,53,82,11, 2} //bub.bubble(num) sel.Select(num) for i ,_:=range num { fmt.Print(i) } }
相关文章推荐
- Go语言实现冒泡排序、选择排序、快速排序及插入排序的方法
- 冒泡排序、选择排序、插入排序(Java实现)
- Java基本排序实现--插入排序,选择排序,冒泡排序
- 【程序员笔试面试必会——排序①】Python实现 冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序
- 使用C语言和Java分别实现冒泡排序和选择排序
- 排序算法一:冒泡排序,插入排序以及选择排序原理与MATLAB实现
- C语言实现选择排序、直接插入排序、冒泡排序的示例
- #.java实现排序算法:插入排序、选择排序、冒泡排序
- 实现冒泡排序、插入排序、选择排序、shell排序
- C语言实现选择排序、冒泡排序和快速排序的代码示例
- java实现选择排序和冒泡排序
- Java程序员从笨鸟到菜鸟(二)Java实现冒泡排序、快速排序、插入排序、选择排序等基本排序方式
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- java类实现数组的五种排序 冒泡排序、选择排序、插入排序、希尔排序、数组排序
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- (一)Java实现排序,选择排序,快速排序,冒泡排序,插入排序
- C#实现排序(冒泡排序,选择排序,插入排序,希尔排序)
- 快速排序、插入排序、选择排序和冒泡排序的实现
- C#实现所有经典排序算法(选择排序 冒泡排序 快速排序)
- 选择排序、插入排序、冒泡排序python实现