045 常見排序演算法

2022-04-29 16:06:11 字數 2203 閱讀 1354

目錄更新、更全的《go從入門到放棄》的更新**,更有python、go、人工智慧教學等著你:

本文介紹了go語言版經典的排序演算法–快速排序、歸併排序和堆排序。

func

quicksort

(data int)

base := data[0]

l, r := 0, len(data)-1

for i := 1; i <= r; else

} quicksort(data[:l])

quicksort(data[l+1:])

}func

main

()

func

mergesort

(data int) int

num := length / 2

left := mergesort(data[:num])

right := mergesort(data[num:])

return merge(left, right)

}func

merge

(left, right int)

(result int)

func

main

()

func

heapsort

(array int)

for i := m - 1; i > 0; i--

}func

heap

(array int, i, end int)

n := l

r := 2*i + 2

if r <= end && array[r] > array[l]

if array[i] > array[n]

array[n], array[i] = array[i], array[n]

heap(array, n, end)

}func

main()

fmt.println(s)

heapsort(s)

fmt.println(s)

}

目錄更新、更全的《go從入門到放棄》的更新**,更有python、go、人工智慧教學等著你:

本文介紹了go語言版經典的排序演算法–快速排序、歸併排序和堆排序。

func

quicksort

(data int)

base := data[0]

l, r := 0, len(data)-1

for i := 1; i <= r; else

} quicksort(data[:l])

quicksort(data[l+1:])

}func

main

()

func

mergesort

(data int) int

num := length / 2

left := mergesort(data[:num])

right := mergesort(data[num:])

return merge(left, right)

}func

merge

(left, right int)

(result int)

func

main

()

func

heapsort

(array int)

for i := m - 1; i > 0; i--

}func

heap

(array int, i, end int)

n := l

r := 2*i + 2

if r <= end && array[r] > array[l]

if array[i] > array[n]

array[n], array[i] = array[i], array[n]

heap(array, n, end)

}func

main()

fmt.println(s)

heapsort(s)

fmt.println(s)

}

常見排序演算法

一.選擇排序 1.概念 每次從無序的子陣列裡面選擇最小的數,放在有序區的後面 既與無序區的首元素交換 不穩定排序 時間複雜度o n 2 輔助儲存o 1 2.實現 int selection sort int a,int len len為陣列元素個數 二.氣泡排序 1.概念 重複訪問數列n 1次,每次...

常見排序演算法

1 插入排序 直接插入排序,是一種最簡單的排序方法,它的基本操作是將乙個記錄插入到已排好序的有序表中,從而得到乙個新的 記錄數增1的有序表。初始 38 65 27 76 13 i 1 13 選13為監視哨並假設為乙個有序序列 i 2 13 38 待插入元素38 13 i 3 13 38 65 待插入...

常見排序演算法

排序演算法作為常用的基本演算法,今天就來總結一下各種經典排序演算法,這裡只貼出 對演算法的文字描述可以在課本或其它部落格上找到很多詳盡的敘述,這裡直接上 而不是常見演算法書上的偽 希望對正在努力學資料結構與演算法的朋友們有幫助 1 氣泡排序 void bubblesort t a,int n if ...