1:氣泡排序
氣泡排序中,包含著乙個具體的演算法實現原檔案和乙個測試檔案:
// bubblesort.go
package bubblesort
func bubblesort(values int) // end if
} // end for j = ...
if flag == true
} // end for i = ...
}
// bubble_test.go
package bubblesort
import "testing"
func testbubblesort1(t *testing.t)
bubblesort(values)
if values[0] != 1 || values[1] != 2 || values[2] != 3 || values[3] != 4 || values[4] !=5
} func testbubblesort2(t *testing.t)
bubblesort(values)
if values[0] != 1 || values[1] != 2 || values[2] != 3 || values[3] != 5 || values[4] !=5
} func testbubblesort3(t *testing.t)
bubblesort(values)
if values[0] != 5
}
1:快速排序
與氣泡排序相同,快速排序也包含乙個具體的演算法實現原始檔和乙個單元測試檔案:
// qsort.go
package qsort
func quicksort(values int, left, right int)
if j >= p
if values[i] <= temp && i <= p
if i <= p
} values[p] = temp
if p - left > 1
if right - p > 1
} func quicksort(values int)
// qsort_test.go
package qsort
import "testing"
func testquicksort1(t *testing.t)
quicksort(values)
if values[0] != 1 || values[1] != 2 || values[2] != 3 || values[3] != 4 || values[4] !=5
} func testquicksort2(t *testing.t)
quicksort(values)
if values[0] != 1 || values[1] != 2 || values[2] != 3 || values[3] != 5 || values[4] !=5
} func testquicksort3(t *testing.t)
quicksort(values)
if values[0] != 5
}
Go語言 堆排序
1 前言 在了解堆排序之前,需要知道堆的一些特徵,那就是堆就是乙個完全二叉樹,所以需要了解完全二叉樹的特點 完全二叉樹的特點 1 葉子節點只能在最大的兩層出現 2 如果i 1,結點就是根結點,如果i 1,則其雙親parent i i 2 3 如果2i n,則結點無左孩子,如果2i 1 n,則結點無右...
GO 語言常用排序
1.氣泡排序 bubble sort 的基本思想 比較相鄰兩個 元素的關鍵字值,如果反序,則交換 func bubblesort arr int 判斷資料是否是有序 if flag else 2.快速排序 快速排序 quick sort 是一種分割槽交換排序演算法.它的基本思想 在資料序列中選擇乙個...
Go語言中的排序
排序作為程式中最常用的功能之一,各種程式語言也都通過類庫提供了現成的排序工具,在golang中就是sort包。並不是所有的東西都能夠被排序,通常能夠被排序的物件需要具有以下三個特徵 是乙個有限元素的集合 集合中的元素可以交換相對位置 集合中任意兩個元素能夠相互比較大小 sort包定義了inte ce...