Go語言排序

2021-09-02 05:47:09 字數 1702 閱讀 7735

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...