最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go實現冒泡排序算法

 更新時間:2022年03月15日 10:38:40   作者:嵌入式職場  
冒泡排序算法是數據結構中常用的一種算法,本文就介紹了go實現冒泡排序算法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

1、基本思想

通過對待排序序列從后向前,依次比較相鄰元素的排序碼,若發(fā)現逆序則交換,使排序碼較小的元素從后部移向前部,就像水底氣泡一樣逐漸向上冒。

通俗點說就是:數組中前一個元素和后一個元素進行比較如果大于或者小于前者就進行交換,最終返回最大或者最小都冒到數組的最后序列時間復雜度為O(n^2).

比較的次數為:1+2+3+ ... + (N-1) = (\frac{N^{2}-N}{2})

從比較次數上可以看出,是一個平方級別的時間復雜度;

冒泡排序算法是穩(wěn)定的,如果兩個相鄰的元素相等,是不會交換的,可以保證了穩(wěn)定性的要求。

2、算法步驟

例如數組 

{23,45,13,67,35}

讓前面的數和后面的數進行比較,如果前面的數大,則交換。

第一輪開始排序:

第一輪開始迭代,從第一個數開始,依次比較相鄰的兩個數,如果前一個數比后面一個數大,那么交換位置,直到處理最后一個數,最后一個數即為最大值。

 第二輪開始排序:

第二輪開始迭代,重復上述步驟,得出倒數第二大的數;

 第三輪開始排序:

第三輪開始迭代,重復上述操作,得到倒數第三大的值;

 第四輪開始排序:

第四輪開始迭代,重復上述操作,得到倒數第四大的值;

 3、算法實現

package  main
 
import "fmt"
 
func BubbleSort(arr []int)[]int{
	for i := 0; i<len(arr) - 1; i++{
		for j:= 0; j<len(arr)-1-i; j++{
			if arr[j] > arr[j+1]{
				arr[j],arr[j+1] = arr[j+1],arr[j]
			}
		}
	}
	return arr
}
 
func main(){
	arr := []int{23,45,13,67,35}
	fmt.Println(BubbleSort(arr))
}

結果展示:

到此這篇關于go實現冒泡排序算法的文章就介紹到這了,更多相關go 冒泡排序內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Golang中優(yōu)秀的消息隊列NSQ基礎安裝及使用詳解

    Golang中優(yōu)秀的消息隊列NSQ基礎安裝及使用詳解

    這篇文章主要介紹了Golang中優(yōu)秀的消息隊列NSQ基礎安裝及使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • GO實現文件上傳操作

    GO實現文件上傳操作

    這篇文章主要為大家詳細介紹了GO實現文件上傳操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Golang指針的操作以及常用的指針函數

    Golang指針的操作以及常用的指針函數

    本文主要介紹了Golang指針的操作以及常用的指針函數,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • golang中snappy的使用場合實例詳解

    golang中snappy的使用場合實例詳解

    在java 和go語言 大字符傳達的時候, 采用snappy 壓縮 解壓縮是最好的方案。下面這篇文章主要給大家介紹了關于golang中snappy使用場合的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2017-12-12
  • go語言中排序sort的使用方法示例

    go語言中排序sort的使用方法示例

    golang中也實現了排序算法的包sort包,下面這篇文章就來給大家介紹了關于go語言中排序sort的使用方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-06-06
  • Windows10系統(tǒng)下安裝Go環(huán)境詳細步驟

    Windows10系統(tǒng)下安裝Go環(huán)境詳細步驟

    Go語言是谷歌推出的一款全新的編程語言,可以在不損失應用程序性能的情況下極大的降低代碼的復雜性,這篇文章主要給大家介紹了關于Windows10系統(tǒng)下安裝Go環(huán)境的詳細步驟,需要的朋友可以參考下
    2023-11-11
  • 詳談Golang uint類型溢出問題

    詳談Golang uint類型溢出問題

    在Go語言中,uint類型的無符號整數在達到其最大值時會發(fā)生回繞,為了避免溢出,應確保不超出最大值,使用條件語句檢查接近溢出點,選擇合適的數據類型,進行適當的錯誤處理,或者使用數學庫處理大整數
    2024-12-12
  • Golang中的錯誤處理的示例詳解

    Golang中的錯誤處理的示例詳解

    這篇文章主要為大家詳細介紹了Golang中的錯誤處理的相關資料,文章中的示例代碼講解詳細,對我們學習Golang有一定幫助,需要的可以參考一下
    2022-12-12
  • Go使用TimerController解決timer過多的問題

    Go使用TimerController解決timer過多的問題

    多路復用,實際上Go底層也是一種多路復用的思想去實現的timer,但是它是底層的timer,我們需要解決的問題就過多的timer問題!本文給大家介紹了Go使用TimerController解決timer過多的問題,需要的朋友可以參考下
    2024-12-12
  • logrus hook輸出日志到本地磁盤的操作

    logrus hook輸出日志到本地磁盤的操作

    這篇文章主要介紹了logrus hook輸出日志到本地磁盤的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評論

阿尔山市| 安平县| 孟连| 太康县| 东城区| 遂昌县| 永胜县| 丹巴县| 延津县| 贞丰县| 花莲县| 双辽市| 镇江市| 巴里| 休宁县| 江达县| 潢川县| 平舆县| 河曲县| 城口县| 茂名市| 钟祥市| 石台县| 迭部县| 龙海市| 南华县| 望谟县| 湘西| 都安| 临安市| 昌宁县| 安乡县| 城固县| 乌拉特中旗| 剑川县| 鹿泉市| 简阳市| 宜君县| 黎城县| 册亨县| 贵定县|