氣泡排序和優化 go實現

2021-09-13 22:23:56 字數 941 閱讀 4343

package main

import "fmt"

var arr = int

func bubblesort() }}

fmt.println(arr)}/*

假設我們現在排序ar=這組資料,

按照上面的排序方式,第一趟排序後將10和9交換已經有序,

接下來的8趟排序就是多餘的,什麼也沒做。所以我們可以在

交換的地方加乙個標記,如果那一趟排序沒有交換元素,說明

這組資料已經有序,不用再繼續下去。

*/func bubblesortv1()

}if !flag

}fmt.println(arr)}/*

優化一僅僅適用於連片有序而整體無序的資料(例如:1, 2,3 ,4 ,7,6,5)

但是對於前面大部分是無序而後邊小半部分有序的資料(1,2,5,7,4,3,6,8,9,10)

排序效率也不可觀,對於種型別資料,我們可以繼續優化。既我們可以記下最後一次交換的位置,

後邊沒有交換,必然是有序的,然後下一次排序從第乙個比較到上次記錄的位置結束即可。

*/func bubblesortv2()

}if !flag

k = pos

}fmt.println(arr)}/*

優化二的效率有很大的提公升,還有一種優化方法可以繼續提高效率。

大致思想就是一次排序可以確定兩個值,正向掃瞄找到最大值交換到最後,

反向掃瞄找到最小值交換到最前面。例如:排序資料1,2,3,4,5,6,0

*/func bubblesortv3()

}if !flag

k = pos

for j := k; j > n; j--

}n++

if !flag

}fmt.println(arr)

}func main()

go實現氣泡排序和快速排序

專案結構 氣泡排序演算法,原始檔bubblesort.go package bubblesort 氣泡排序 func bubblesort values int if flag true 快速排序演算法,原始檔qsort.go package qsort 快速排序 func quicksort va...

氣泡排序和選擇排序(Go語言實現)

氣泡排序和選擇排序是排序演算法中比較簡單和容易實現的演算法。氣泡排序的思想為 每一次排序過程,通過相鄰元素的交換,將當前沒有排好序中的最大 小 移到陣列的最右 左 端。而選擇排序的思想也很直觀 每一次排序過程,我們獲取當前沒有排好序中的最大 小 的元素和陣列最右 左 端的元素交換,迴圈這個過程即可實...

氣泡排序和優化

計算機中解決問題,一定要學會問題分解,先解決比這個容易解決的問題,再慢慢加深 比如 我要對陣列排序,那麼我能不能先求陣列的最小值,放在第乙個位置,這樣一來反覆執行這個操作,就能排序了 比如 我要求子陣列的排序,那麼我先解決整個陣列的排序,然後在改進 變成子陣列的排序 package day7yue1...