小编arc*_*hie的帖子

在树结构的Big-O表示法中:为什么有些源引用O(logN)而有些源引用O(h)?

在研究遍历二叉搜索树的任何算法的复杂性时,我看到两种表达同一事物的不同方式:

版本#1:最坏情况下的遍历算法比较树的每个高度一次; 因此复杂性是O(h).

版本#2:最坏情况下的遍历算法比较树的每个高度一次; 因此复杂性是O(logN).

在我看来,相同的逻辑在起作用,但不同的作者使用其中任何一个logNh.有人可以向我解释为什么会这样吗?

algorithm tree big-o binary-search-tree data-structures

12
推荐指数
2
解决办法
9640
查看次数

BFS和DFS的运行时是否在二叉树O(N)上?

我意识到泛型图上的BFS和DFS的运行时是O(n + m),其中n是节点数,m是边数,这是因为对于每个节点,必须考虑它的邻接列表.但是,当它在二叉树上执行时,BFS和DFS的运行时是什么?我认为它应该是O(n),因为可以离开节点的可能边数是恒定的(即2).请确认这是否正确理解.如果没有,那么请解释二叉树上BFS和DFS的正确时间复杂度是什么?

algorithm binary-tree breadth-first-search time-complexity depth-first-search

12
推荐指数
2
解决办法
1万
查看次数

我是否需要安装Yosemite才能构建Swift iOS应用程序?

我想尝试构建一个快速的应用程序,但我害怕将我的Mac升级到Yosemite Developer Preview.我不清楚这是否是先决条件.

macos swift

8
推荐指数
1
解决办法
3885
查看次数

O(logn)总是一棵树吗?

我们总是看到(二元搜索)树上的操作具有O(logn)最差情况下的运行时间,因为树高是logn.我想知道我们是否被告知算法的运行时间是logn的函数,例如m + nlogn,我们可以得出结论它必须涉及(增强的)树吗?

编辑:感谢您的评论,我现在意识到分治和二叉树在视觉/概念上是如此相似.我从来没有在两者之间建立联系.但我想到一个案例,其中O(logn)不是一个分治算法,它涉及一棵没有BST/AVL /红黑树属性的树.

这是具有查找/联合操作的不相交的集合数据结构,其运行时间为O(N + MlogN),其中N是元素的数量,M是查找操作的数量.

如果我错过了,请告诉我,但我看不出分治在这里如何发挥作用.我只是在这个(不相交的集合)情况下看到它有一个没有BST属性的树,而运行时间是logN的函数.所以我的问题是为什么/为什么我不能从这个案例中进行推广.

algorithm tree big-o binary-search-tree

6
推荐指数
2
解决办法
2612
查看次数

heroku如何提出应用名称?

很好奇heroku如何创建应用程序名称.应用程序名称通常是英语单词,如bloom-peaks或formal-trail.大公司的IT部门也是如此.是否有一个unix库可以生成名称?

heroku names

6
推荐指数
1
解决办法
432
查看次数

6
推荐指数
1
解决办法
9419
查看次数

为什么带有=的ruby方法最后不允许多于一个参数

这是在共享库中,我必须使其向后兼容.

原始方法

   def rrp_exc_sales_tax=(num)
      price_set(1, num, currency_code)
   end
Run Code Online (Sandbox Code Playgroud)

需要增强和添加currency_code

   def rrp_exc_sales_tax=(num, currency_code=nil)
      print "num=#{num}"
      print "currency_code=#{currency_code}"
      price_set(1, num, currency_code)
   end


some_class.rrp_exc_sales_tax=2, "USD"

num=[2, "USD"]
currency_code=
Run Code Online (Sandbox Code Playgroud)

没有值被分配给currency_code

ruby

4
推荐指数
1
解决办法
64
查看次数

在Ruby中区分十进制数的索引和数组内的整数?

由于Ruby进行类型转换,如何正确获取索引?

我希望这返回1

[1,2.0,2,3].index(2.0)
#=> 1
Run Code Online (Sandbox Code Playgroud)

我想这回来2

[1,2.0,2,3].index(2)
#=> 1
Run Code Online (Sandbox Code Playgroud)

ruby arrays

3
推荐指数
1
解决办法
127
查看次数

如何在Golang中将全角数字转换为Ascii?

如何在golang中将全角字符转换为ascii字符.我的程序中的输入是全宽数字,我需要对它们运行一些计算,所以我假设我必须编写如下的转换函数,在开始映射字节之前,我想知道这是否确实在标准中可用去图书馆

fullWidth:="???"
expected := "123"
func convert(input string) string {
// body
}

expected == convert(fullWidth)
Run Code Online (Sandbox Code Playgroud)

unicode go

3
推荐指数
1
解决办法
600
查看次数

是否存在不是平衡二叉搜索树的平衡二叉树?什么是时间复杂度?

是否存在不是平衡二叉搜索树的平衡二叉树?如果是这样,那么在这样的树中搜索节点的时间复杂度是多少.

我的理解是这样的:

  1. 二叉树:任何节点都有两个最大叶节点.使用DFS或BFS在二叉树中搜索是O | V + E |
  2. 二进制搜索树:BST是有序节点的树.在二叉搜索树中搜索,使用DFS是O | log n |
  3. 平衡树(假设高度平衡):根目录下的最大级别数保持最小.平衡对搜索的时间复杂性有影响吗?

所以,基本上,我可以创建一个高度平衡但没有排序的二叉树.这棵树的搜索时间是O | V + E | 还是会更好?

algorithm tree big-o data-structures

1
推荐指数
1
解决办法
248
查看次数

为什么sub只用正则表达式替换一个字符?

我想从字符串中删除所有非数字字符. /\D/是一个非数字字符([^0-9]):

irb(main):010:0> s = "(123) 456-7890"
=> "(123) 456-7890"
irb(main):011:0> s.sub( /\D*/, '' )
=> "123) 456-7890"
Run Code Online (Sandbox Code Playgroud)

ruby regex

0
推荐指数
1
解决办法
48
查看次数

升级到rails 4.0.3后 - 找不到'minitest'(〜> 5.1)

为什么我的服务器不能简单地使用rails s启动

? rails s
/usr/local/var/rbenv/versions/2.1.0/lib/ruby/2.1.0/rubygems/dependency.rb:298:in `to_specs': Could not find 'minitest' (~> 5.1) - did find: [minitest-4.7.5] (Gem::LoadError)

? bundle exec rails s
=> Booting Thin
=> Rails 4.0.3 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Thin web server (v1.6.1 codename Death Proof)
Maximum connections set to 1024
Listening on 0.0.0.0:3000, CTRL+C to stop
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-4

0
推荐指数
1
解决办法
1400
查看次数