Go
CV先生
这个作者很懒,什么都没留下…
展开
-
go中的time包及时间格式化问题
“2006-01-02 15:04:05,这个时间据说是纪念go语言的诞生时间。”今天又听到了这句话,为什么很多人这么说,可能一个人说了被其他人听到,然后一传十十传百的传开了(三人成虎吧)。具体是不是为了纪念,那应该只有设计go语言的肯汤普森和罗勃派克知道了。那这个时间格式化到底是怎么个意思呢?下面就来探讨下。请注意这个时间格式...原创 2020-06-29 07:03:42 · 1502 阅读 · 0 评论 -
Go 闭包
package mainimport "fmt"func plus(a int, b int) int{ return a + b}// 定义warpper(),返回一个func,且func中传递一个参数为int类型,返回int//func wrapper() func(int) (int, int){func wrapper() func(int) (int){ var n int = 20 //return func (m int) (int, int){ return fu.原创 2020-06-16 00:36:04 · 69 阅读 · 0 评论 -
Go 匿名函数
package mainimport "fmt"// 匿名函数// 方式1//func main(){// res := func(m int, n int) int{// return m + n// }(1, 2)// fmt.Println(res)//}// 方式2func main(){ a := func(m int, n int) int{ return m + n } r := a(1, 2) fmt.Println(r)}// 全局匿名函数.原创 2020-06-16 00:34:20 · 74 阅读 · 0 评论 -
Go 稀疏数组
当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组处理方法:记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素的行列及值记录在一个小规模的数组中,以达到“压缩”功能举例:[0 0 12 0 5 行 列 值 0 11 0 3 0 0 2 12 1 0 6 0 0 ---> 0 4 5 0 41 0原创 2020-06-16 00:32:09 · 123 阅读 · 0 评论 -
Go数据结构之栈 stack
package mainimport ( //"errors" "fmt")type stack struct { size int // 栈容量 top int // 栈顶 data []interface{} // 数据}const stackSize = 15var stackData = make([]interface{}, stackSize)// 初始化栈func initStack() stack { s := stack{ size: stac.原创 2020-06-16 00:15:27 · 283 阅读 · 0 评论 -
Go数据结构排序之插入排序
插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。动图演示:时间复杂度最优时间复杂度:O(n) (升序排列,序列已经处于升序状态) 最坏时间复杂度:O(n2) 稳定性:稳定package mainimport "fmt"func insertSort(arr.转载 2020-06-16 00:11:04 · 138 阅读 · 0 评论 -
Go数据结构排序之选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择转载 2020-06-16 00:05:41 · 116 阅读 · 0 评论 -
Go数据结构排序之快速排序
快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:从数列中挑出一个元素,称为"基准"(pivot), 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区结束之后,该基准原创 2020-06-16 00:00:19 · 138 阅读 · 0 评论 -
Go 数据结构排序之冒泡排序
冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,转载 2020-06-15 23:53:44 · 108 阅读 · 0 评论 -
Go 数据结构之双链表
package mainimport ( "fmt")type DoubleNode struct { data interface{} next *DoubleNode pre *DoubleNode}type doubleLinked struct { head *DoubleNode}func (this *doubleLinked) Empty() bool { if this.head == nil { return true } else { re.原创 2020-06-15 23:47:44 · 74 阅读 · 0 评论 -
go 数据结构之单链表
package mainimport ( "fmt")type Node struct { data interface{} next *Node}type singleLinked struct { head *Node}func (this *singleLinked) Empty() bool { if this.head == nil{ return true }else { return false }}func (this *singleLin.原创 2020-06-15 23:44:59 · 136 阅读 · 0 评论