Golang实现七大排序(2)
来源:互联网 发布:nba2k16捏脸数据 编辑:程序博客网 时间:2024/06/06 01:03
1. 计数排序
func Count(arr []int, nLength int) { if nil == arr || nLength <= 0 { return } var max int = 0 for i := 0; i < nLength; i++ { if arr[i] > max { max = arr[i] } } var arrTemp []int = make([]int, max+1) for i := 0; i < nLength; i++ { arrTemp[arr[i]]++ } var j int = 0 for i := 0; i < max+1; i++ { if arrTemp[i] > 0 { arr[j] = i arrTemp[i]-- j++ } }}
2. shell排序
func Shell(arr []int, nLength int) { if nil == arr || nLength <= 0 { return } fmt.Println("nLength:", nLength) // 确定步长 for gap := nLength / 2; gap >= 1; gap /= 2 { fmt.Println("gap:", gap) // 对每一个步长对应的数组进行插入排序 for i := gap; i < nLength; i += gap { flag := i - gap temp := arr[i] for flag >= 0 && arr[flag] > temp { arr[flag+gap] = arr[flag] flag -= gap } arr[flag+gap] = temp } }}
3. 合并排序
func Shell(arr []int, nLength int) { if nil == arr || nLength <= 0 { return } fmt.Println("nLength:", nLength) // 确定步长 for gap := nLength / 2; gap >= 1; gap /= 2 { fmt.Println("gap:", gap) // 对每一个步长对应的数组进行插入排序 for i := gap; i < nLength; i += gap { flag := i - gap temp := arr[i] for flag >= 0 && arr[flag] > temp { arr[flag+gap] = arr[flag] flag -= gap } arr[flag+gap] = temp } }}
阅读全文
0 0
- Golang实现七大排序(2)
- Golang实现七大排序(1)
- 七大排序java实现
- golang实现快速排序
- 排序算法 golang 实现
- Golang实现快速排序
- golang 实现冒泡排序
- golang 实现选择排序
- golang实现冒泡排序
- 七大排序算法java实现
- 七大排序算法初步实现
- golang版本快速排序实现
- 七大排序算法C++实现(代码分享)
- 《七大排序算法》(Java实现)
- Golang实现排序算法之冒泡排序
- 七大排序
- 七大排序
- 七大排序
- Chrome浏览器 抢购、秒杀插件,秒杀助手
- HTML(十五)
- Huffman树
- Spring Boot Controller
- PREV-4 剪格子
- Golang实现七大排序(2)
- java
- 菜鸟修炼记之起飞心
- 框架
- HTML(十六)
- 基于kolla部署多节点OpenStack(Ocata版)
- Spring Boot Servlet
- vue div contenteditable属性,模拟v-model双向数据绑定功能
- 【前端】--console.log和alert的区别