在R

时间:2017-10-28 22:19:47

标签: r vector functional-programming

authour刚刚写道:

“我们通过切片提取其余矢量的方式将使R复制该子向量。我们第一次调用rest时,我们得到整个向量减去第一个元素,第二次得到整个向量减去前两个,依此类推。这加起来大约是矢量平方长度的一半。因此,虽然搜索算法应该以线性时间运行,但我们提取向量的其余部分的方式使其在二次时间内运行“(R中的函数编程) 数据科学,分析和金融高级统计编程)

你能帮助我理解为什么每次向量减少1时实现休息函数的原因是什么?

示例代码如下:

lin_search <- function(element, sequence) {
  if (is_empty(sequence)) FALSE
  else if (first(sequence) == element) TRUE
  else lin_search(element, rest(sequence))
}

  is_empty <- function(x) length(x) == 0
  first <- function(x) x[1]

  rest <- function(x) {
  if (length(x) == 1) NULL else x[2:length(x)]
   }

0 个答案:

没有答案