初级会员
  • 第 14870 位会员
  • snake117
  • 2017-12-15 02:15:59
  • 428
  • Offline
  • 19 75

最近发布的文章

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • #2 @sonoho 谢谢!我在本站和gocn、golangtc都发问了,目前来看就老哥的方案最好。
  • 评论了主题 go的string深复制
    string是不可变类型,为啥非要深复制?
  • #24 @jthmath 带优先级的队列,其底层的数据结构实现中其实就包括我说的跳表/链表二叉树。当然采用树堆也是可行的。
  • 二叉树版本的排版错了,正确排版 package main import ( "fmt" "github.com/hydar13142/container/sbt" "os" ) type Void = struct{} func main() { t := sbt.NewSBT() for i := 2; i < 6; i++ { t.Insert(int64(i), Void{}) } p := t.Index(0) xs := [10000]int64{} for i := 0; i < 10000; i++ { k := p.Key() xs[i] = k t.Insert(k*2, Void{}) t.Insert(k*3, Void{}) t.Insert(k*5, Void{}) t.DeleteNode(p) p = p.Next() } file, _ := os.Create("output.txt") defer file.Close() fmt.Fprintln(file, xs) }
  • 我们不要用对数字进行检验的方法,不管检验的速度快慢,都需要检验太多数字了。 根据我计算的结果,第10000个数字是:288555831593533440。 你们说如果检验数字,要检验多久吧。即使采用各种方法排除了一大批数字,并且单个数字的检验很快,这个数量级也太大了。 所以采用生成数字的方法。 我们只要保证有一个数据仓库,这个仓库可以很方便的按从小到大的顺序取出值,同时插入新的值时,能够保持有序(最好插入时维护有序的操作时间尽可能短)即可。