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

因為排序的過程中,各元素不斷的接近自己的位置,如果一趟比較下來沒有進行過交換,就說明序列有序,因此要在排序過程中設置一個標志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;i<length;i++ {
for j:=0;j<length-i-1;j++ {
// j <= length-i-1 這個是關鍵,每次 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位置開始。
到此這篇關于go實現(xiàn)冒泡排序的示例代碼的文章就介紹到這了,更多相關go 冒泡排序內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
如何通過Golang的container/list實現(xiàn)LRU緩存算法
文章介紹了Go語言中container/list包實現(xiàn)的雙向鏈表,并探討了如何使用鏈表實現(xiàn)LRU緩存,LRU緩存通過維護一個雙向鏈表來管理數(shù)據(jù),確保在插入和刪除操作時能夠以O(1)的平均時間復雜度運行,提供了鏈表的操作和使用場景,并附帶了實現(xiàn)LRU緩存的代碼示例,感興趣的朋友一起看看吧2025-03-03
golang gin ShouldBind的介紹和使用示例詳解
在 Go 語言的 Gin 框架中,ShouldBind 是用于將請求中的數(shù)據(jù)綁定到結構體的一個方法,它簡化了從請求中提取參數(shù)的過程,支持多種數(shù)據(jù)格式,下面給大家分享golang gin ShouldBind的介紹和使用示例,感興趣的朋友一起看看吧2024-10-10

