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

因?yàn)榕判虻倪^(guò)程中,各元素不斷的接近自己的位置,如果一趟比較下來(lái)沒(méi)有進(jìn)行過(guò)交換,就說(shuō)明序列有序,因此要在排序過(guò)程中設(shè)置一個(gè)標(biāo)志flag判斷元素是否進(jìn)行過(guò)交換,從而減少不必要的比較(優(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 這個(gè)是關(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ù)組下標(biāo)0位置開(kāi)始。
到此這篇關(guān)于go實(shí)現(xiàn)冒泡排序的示例代碼的文章就介紹到這了,更多相關(guān)go 冒泡排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go 語(yǔ)言中的 http.FileSystem詳細(xì)解析
在本文中,我們深入探討了 Go 語(yǔ)言中的 http.FileSystem 接口,并介紹了它的基本原理、使用方法以及實(shí)際應(yīng)用場(chǎng)景,感興趣的朋友跟隨小編一起看看吧2024-03-03
Go語(yǔ)言sync.Pool對(duì)象池使用場(chǎng)景基本示例
這篇文章主要為大家介紹了Go語(yǔ)言sync.Pool對(duì)象池使用場(chǎng)景的基本示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
如何通過(guò)Golang的container/list實(shí)現(xiàn)LRU緩存算法
文章介紹了Go語(yǔ)言中container/list包實(shí)現(xiàn)的雙向鏈表,并探討了如何使用鏈表實(shí)現(xiàn)LRU緩存,LRU緩存通過(guò)維護(hù)一個(gè)雙向鏈表來(lái)管理數(shù)據(jù),確保在插入和刪除操作時(shí)能夠以O(shè)(1)的平均時(shí)間復(fù)雜度運(yùn)行,提供了鏈表的操作和使用場(chǎng)景,并附帶了實(shí)現(xiàn)LRU緩存的代碼示例,感興趣的朋友一起看看吧2025-03-03
golang gin ShouldBind的介紹和使用示例詳解
在 Go 語(yǔ)言的 Gin 框架中,ShouldBind 是用于將請(qǐng)求中的數(shù)據(jù)綁定到結(jié)構(gòu)體的一個(gè)方法,它簡(jiǎn)化了從請(qǐng)求中提取參數(shù)的過(guò)程,支持多種數(shù)據(jù)格式,下面給大家分享golang gin ShouldBind的介紹和使用示例,感興趣的朋友一起看看吧2024-10-10
Go語(yǔ)言Grpc?Stream的實(shí)現(xiàn)
本文主要介紹了Go語(yǔ)言Grpc?Stream的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
Go語(yǔ)言實(shí)現(xiàn)動(dòng)態(tài)開(kāi)點(diǎn)線段樹(shù)詳解
線段樹(shù)是一種用于高效處理區(qū)間查詢和區(qū)間更新的數(shù)據(jù)結(jié)構(gòu),下面我們就來(lái)看看如何使用Go實(shí)現(xiàn)動(dòng)態(tài)開(kāi)點(diǎn)線段樹(shù)的方式,感興趣的可以了解下2025-02-02
Go語(yǔ)言學(xué)習(xí)筆記之錯(cuò)誤和異常詳解
Go語(yǔ)言采用返回值的形式來(lái)返回錯(cuò)誤,這一機(jī)制既可以讓開(kāi)發(fā)者真正理解錯(cuò)誤處理的含義,也可以大大降低程序的復(fù)雜度,下面這篇文章主要給大家介紹了關(guān)于Go語(yǔ)言學(xué)習(xí)筆記之錯(cuò)誤和異常的相關(guān)資料,需要的朋友可以參考下2022-07-07

