冒泡排序: (Bubble Sorting)基本思想是通過對待排序序列從后向前(從下標較大的元素開始)以此比較相鄰元素的排序碼,若發(fā)現(xiàn)逆序則交換,使排序碼較小的元素逐漸從后補移向前部(從下標較大的單元移向單位較小的單元),就像水底的氣泡一樣逐漸向上冒。
因為排序的過程中,各元素不斷的接近自己的位置,如果一趟比較下來沒有進行過交換,就說明序列有序,因此要在排序過程中設(shè)置一個標志flag判斷元素是否進行過交換,從而減少不必要的比較(優(yōu)化)。
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 這個是關(guān)鍵,每次 i ,少比較最后一位數(shù)組
if array[j] > array[j+1] {
array[j+1],array[j] = array[j],array[j+1]
//isChange = true
}
}
// 直接跳下次循環(huán)
// if !isChange {
// break;
// }
}
return array;
}
冒泡冒泡,就是每次循環(huán)都將最大的值,冒泡到數(shù)組最后,第二次冒泡也是從數(shù)組下標0位置開始。
到此這篇關(guān)于go實現(xiàn)冒泡排序的示例代碼的文章就介紹到這了,更多相關(guān)go 冒泡排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- GOLANG版的冒泡排序和快速排序分享
- Go語言實現(xiàn)冒泡排序、選擇排序、快速排序及插入排序的方法