R 递归后如何返回列表?

R 递归后如何返回列表?,r,recursion,R,Recursion,我想做一个做冒泡排序的代码,但是程序必须返回一个带有有序向量和比较数的列表 我尝试了很多方法,但由于递归,列表变得一团糟 ord_rc <- function(x, comp = 0){ if(length(x)<=1)return(x[1]) for(i in 1:(length(x)-1)){ if(x[i]>x[i+1]){ comp <- comp + 1 aux <- x[i+1] x[i+1] <

我想做一个做冒泡排序的代码,但是程序必须返回一个带有有序向量和比较数的列表

我尝试了很多方法,但由于递归,列表变得一团糟

ord_rc <- function(x, comp = 0){
  if(length(x)<=1)return(x[1])
  for(i in 1:(length(x)-1)){
    if(x[i]>x[i+1]){
      comp <- comp + 1
      aux <- x[i+1]
      x[i+1] <- x[i]
      x[i] <- aux
    }
  }
  w <- x[1:(length(x)-1)]
  return(list(c(ord_rc(w),x[length(x)])), comp)
}

ord\u rc Remove
comp
return
语句中删除。我也需要比较的次数
return
只取一个参数,您给它两个。如果要返回比较次数,则需要将其与返回值一起作为单个参数包含在内。为了做到这一点,您还需要让
ord_rc
处理
列表
输入,并从其输入参数中提取数据和比较。如果您需要的是比较的数量,为什么要使用递归冒泡排序?编写一个迭代程序要容易得多,它将返回您想要的任何结果。是的,但这是我的统计学课程的练习。