主頁(yè) > 知識(shí)庫(kù) > go實(shí)現(xiàn)冒泡排序的示例代碼

go實(shí)現(xiàn)冒泡排序的示例代碼

熱門標(biāo)簽:AI電銷 網(wǎng)站排名優(yōu)化 服務(wù)外包 呼叫中心市場(chǎng)需求 Linux服務(wù)器 百度競(jìng)價(jià)排名 鐵路電話系統(tǒng) 地方門戶網(wǎng)站

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

因?yàn)榕判虻倪^(guò)程中,各元素不斷的接近自己的位置,如果一趟比較下來(lá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;ilength;i++ {
  for j:=0;jlength-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位置開始。

到此這篇關(guān)于go實(shí)現(xiàn)冒泡排序的示例代碼的文章就介紹到這了,更多相關(guān)go 冒泡排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • GOLANG版的冒泡排序和快速排序分享
  • Go語(yǔ)言實(shí)現(xiàn)冒泡排序、選擇排序、快速排序及插入排序的方法

標(biāo)簽:湘潭 衡水 湖南 銅川 崇左 黃山 仙桃 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《go實(shí)現(xiàn)冒泡排序的示例代碼》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266