排序算法

冒泡排序 重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来,因小元素会经由交换慢慢“浮”到数列的顶端而得名 代码 func bubbleSort[T constraints.Ordered](arr []T) { for i := 0; i < len(arr); i++ { for j := i; j < len(arr); j++ { if arr[i] > arr[j] { arr[i], arr[j] = arr[j], arr[i] //swap } } } } 插入排序 从第二个元素(index=1)开始,不断向前“插队”到第一个比他小的元素之后 代码 func insertionSort[T constraints.Ordered](arr []T) { for i := 1; i < len(arr); i++ { j := i - 1 key := arr[i] for ; j >= 0 && arr[j] > key; j-- { arr[j+1] = arr[j] } arr[j+1] = key } } 选择排序 反复遍历数组,每次选出最小的元素移动至合适的位置...

一月 7, 2023 · 2 分钟 · 铃兰怜雪