您好我正在尝试提前完成冒泡排序功能。 我需要打印交换次数+调用函数vector.bubbleup的次数。这是我的代码
vector.swap <- function(vector,index1,index2){
temp <- vector[index1]
vector[index1] <- vector[index2]
vector[index2] <- temp
return(vector)
}
vector.bubbleup <- function (vector) {
index_start <- 1
index_end <- length(vector) - 1
swap <- 0
for (index in index_start:index_end) {
if (vector[index] > vector[index+1]) {
vector <- vector.swap(vector,index,index+1)
swap <- swap + 1
}
}
print(swap)
return(vector)
}
vector.bubblesort <- function(vector){
iteration <- length(vector)-1
while (iteration > 0){
vector <- vector.bubbleup(vector)
iteration <- iteration - 1
}
return(vector)
}
假设我有一个值为66 11 44 88 47 36
的向量vector.bubblesort的输出将是
[1] 4
[1] 2
[1] 1
[1] 1
[1] 0
[1] 11 36 44 47 66 88
向量之前的所有数字都是vector.bubbleup中使用的打印函数,但是如何记录它们以及如何计算函数的使用次数。
非常感谢!
答案 0 :(得分:0)
交换次数和bubbleup
次呼叫数可以存储在变量中。只需声明
nbSwaps <- 0
nbCalls <- 0
在您的功能之外,并在每次调用该功能时为其添加正确的金额,例如nbSwaps <- nbSwaps + swap
和nbCalls <- nbCalls + 1