摘要:
Sort 排序任意切片 sort.Slice(arr, func (i, j int) bool { return arr[i] < arr[j] }) // [1,2,3,4,5] ints // [a,b,c,d,e] bytes // [自定义结构体切片排序] 排序任意数据结构 使用 sort 阅读全文
posted @ 2022-12-21 21:36
kohn
阅读(56)
评论(0)
推荐(0)
摘要:
fmt Go 打印 %v %+v %#v 的区别 1. %v 只输出所有的值 2. %+v 先输出字段名字,再输出该字段的值 3. %#v 先输出结构体名字值,再输出结构体(字段名字+字段的值) package main import "fmt" type student struct { id i 阅读全文
posted @ 2022-12-21 21:35
kohn
阅读(194)
评论(0)
推荐(0)
摘要:
heap.Interface 接口 // heap.Interface type Interface interface { sort.Interface // 向末尾添加元素 Push(x interface{}) // add x as element Len() // 从末尾删除元素 Pop( 阅读全文
posted @ 2022-12-21 21:35
kohn
阅读(19)
评论(0)
推荐(0)
摘要:
堆排序 时间复杂度:O(logn) 先创建一个堆,然后调整堆,调整过程是将节点和子节点进行比较,将其中最大的值变为父节点,递归调整调整次数lgn,最后将根节点和尾节点交换再n次调整O(nlgn). 算法步骤: 创建最大堆或者最小堆 调整堆 交换首尾节点 手写堆排序 package leetcode 阅读全文
posted @ 2022-12-21 18:21
kohn
阅读(12)
评论(0)
推荐(0)
摘要:
快速排序 时间复杂度:O(logn) 算法步骤: 将数据根据一个值按照大小分为左右两边,左面小于此值,右面大于此值 将两边数据调用步骤1 将所有数据合并 优化: 标准的快速排序每次都取:数据的第一个元素作为基准来分左右两边。如果数据已经排好序了,那么快速排序的时间复杂度会上升到 O(n^2),所以会 阅读全文
posted @ 2022-12-21 17:25
kohn
阅读(73)
评论(0)
推荐(0)