我知道,插入排序算法比选择排序更快.但在我看来,速度的差异太大了.这是我的两个代码:
#Selection sort algorithm:
u <- round(runif(100,1,100))
selection_sort <- function(x){
s <- vector('numeric')
while(length(x) != 0){
minimum <- x[1]
for(i in 1:length(x)){
ifelse(x[i]<minimum,minimum <- x[i],next())
}
x <- x[-match(minimum,x)]
s <- c(s,minimum)
}
s
}
#Insertion sort algorithm:
u <- round(runif(100,1,100))
insertion_sort <- function(x){
s <- vector('numeric')
while(length(x) !=0){
num <- x[1]
x <- x[-match(num,x)]
if(length(s) == 0){
s <- c(s,num)
} else{
for(i in 1:length(s)){
if(s[i]>=num){
s <- append(s,num,i-1)
break
}
}
if(s[length(s)]<num){
s <- c(s,num)
}
}
} …Run Code Online (Sandbox Code Playgroud)