地精排序 地精排序的核心思想 关键词: 冒泡、插入 地精排序适合大部分数据为有序 的情况,在数据有序时不做交换,在数据乱序时先进行冒泡排序,然后再进行插入排序。 func GnomeSort(arr []int) []int { i := 1 for i < len(arr) { if arr[i] >= arr[i-1] { // 符合顺序,继续前进 i++ } else { // 不符合顺序,交换 arr[i], arr[i-1] = arr[i-1], arr[i] // 倒退一步 if i > 1 { i-- } } } return arr }