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)文章
一文帶你吃透Golang中net/http標(biāo)準(zhǔn)庫(kù)服務(wù)端
這篇文章將從服務(wù)端(Server)作為切入點(diǎn)和大家分享一下Go語(yǔ)言net/http標(biāo)準(zhǔn)庫(kù)的實(shí)現(xiàn)邏輯,進(jìn)而一步步分析http標(biāo)準(zhǔn)庫(kù)內(nèi)部是如何運(yùn)作的,感興趣的可以了解下2024-03-03Go語(yǔ)言的方法接受者類(lèi)型用值類(lèi)型還是指針類(lèi)型?
這篇文章主要介紹了Go語(yǔ)言的方法接受者類(lèi)型用值類(lèi)型還是指針類(lèi)型?本文還同時(shí)講解了關(guān)于接受者的命名方式,需要的朋友可以參考下2014-10-10golang常用加密解密算法總結(jié)(AES、DES、RSA、Sha1、MD5)
在項(xiàng)目開(kāi)發(fā)過(guò)程中,當(dāng)操作一些用戶(hù)的隱私信息,本文主要主要介紹了golang常用加密解密算法總結(jié)(AES、DES、RSA、Sha1MD5),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04go?build失敗報(bào)方法undefined的解決過(guò)程
go build命令用于編譯我們指定的源碼文件或代碼包以及它們的依賴(lài)包,下面這篇文章主要給大家介紹了關(guān)于go?build失敗報(bào)方法undefined的解決過(guò)程,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11Go?channel實(shí)現(xiàn)批量讀取數(shù)據(jù)
Go中的?channel?其實(shí)并沒(méi)有提供批量讀取數(shù)據(jù)的方法,需要我們自己實(shí)現(xiàn)一個(gè),使用本文就來(lái)為大家大家介紹一下如何通過(guò)Go?channel實(shí)現(xiàn)批量讀取數(shù)據(jù)吧2023-12-12Go語(yǔ)言動(dòng)態(tài)并發(fā)控制sync.WaitGroup的靈活運(yùn)用示例詳解
本文將講解 sync.WaitGroup 的使用方法、原理以及在實(shí)際項(xiàng)目中的應(yīng)用場(chǎng)景,用清晰的代碼示例和詳細(xì)的注釋,助力讀者掌握并發(fā)編程中等待組的使用技巧2023-11-11