冒泡排序: (Bubble Sorting)基本思想是通過對待排序序列從后向前(從下標較大的元素開始)以此比較相鄰元素的排序碼,若發現逆序則交換,使排序碼較小的元素逐漸從后補移向前部(從下標較大的單元移向單位較小的單元),就像水底的氣泡一樣逐漸向上冒。

因為排序的過程中,各元素不斷的接近自己的位置,如果一趟比較下來沒有進行過交換,就說明序列有序,因此要在排序過程中設置一個標志flag判斷元素是否進行過交換,從而減少不必要的比較(優化)。
BubleSort.go
package main;
import "fmt"
func main() {
array := []int{5,4,3,4,2}
res := bubleSort(array)
fmt.Println(res)
}
func bubleSort(array []int) []int {
length :=len(array)
//isChange :=false
for i:=0;ilength;i++ {
for j:=0;jlength-i-1;j++ {
// j = length-i-1 這個是關鍵,每次 i ,少比較最后一位數組
if array[j] > array[j+1] {
array[j+1],array[j] = array[j],array[j+1]
//isChange = true
}
}
// 直接跳下次循環
// if !isChange {
// break;
// }
}
return array;
}
冒泡冒泡,就是每次循環都將最大的值,冒泡到數組最后,第二次冒泡也是從數組下標0位置開始。
到此這篇關于go實現冒泡排序的示例代碼的文章就介紹到這了,更多相關go 冒泡排序內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- GOLANG版的冒泡排序和快速排序分享
- Go語言實現冒泡排序、選擇排序、快速排序及插入排序的方法