Go语言中文网 为您找到相关结果 2

算法导论习题:10.2-7 in Go语言

10.2-7题:给出一个时间复杂度为O(n)的非递归过程,实现对一个含n个元素的单链表的逆转。 程序的主要思想就是,转变指标的指向,例如原本是1->2->3->4,现在变成1<-2<-3<-4,就实现了逆转 package main import ( "fmt" ) type Node struct { next *Node data int } type List struct { first *Node } func (l *List) Insert(d int) { node := &Node{nil, d} node.next = l.first l.first = node } func revise(l *List) { if l.first == nil { return } ...阅读全文

博文 2016-05-24 03:00:14 u013564276

算法导论第七章-快速排序

7.1-1 参照图7-1的方法,说明PARTITION在数组A=<13,19,9,5,12,8,7,4,21,2,6,11>上的操作过程。 答:golang实现: // Partition 分解重排步骤 func Partition(a QuickSortInterface, p int, r int) int { x := a.Get(r) i := p - 1 for j := p; j < r; j++ { if a.Get(j) < x { i++ a.Swap(i, j) } } a.Swap(i+1, r) return i + 1 } 结果为: [9 5 8 7 4 2 6 11 21 13 19 12] 7.1-2 当数组A[p..r]中所有元素的值都相同时,PARTITIO...阅读全文

博文 2018-06-17 23:34:37 Avatera