Translated myunion()

This commit is contained in:
Waldir Leoncio 2022-12-22 13:36:07 +01:00
parent a757a4435c
commit f2f59ba7f8

View file

@ -1,32 +1,31 @@
myunion <- function(A, B) {
stop("needs translation")
# function C = myunion(A,B)
# % MYUNION Union of two sets of positive integers (much faster than built-in union)
# % C = myunion(A,B)
# MYUNION Union of two sets of positive integers (much faster than built - in union)
# C <- myunion(A, B)
# if isempty(A)
# ma = 0;
# else
# ma = max(A);
# end
# if isempty(B)
# mb = 0;
# else
# mb = max(B);
# end
# if ma==0 & mb==0
# C = [];
# elseif ma==0 & mb>0
# C = B;
# elseif ma>0 & mb==0
# C = A;
# else
# %bits = sparse(1, max(ma,mb));
# bits = zeros(1, max(ma,mb));
# bits(A) = 1;
# bits(B) = 1;
# C = find(bits);
# end
if (is.null(A)) {
ma <- 0
} else {
ma <- max(A)
}
if (is.null(B)) {
mb <- 0
} else {
mb <- max(B)
}
if (ma == 0 & mb == 0) {
C <- vector()
} else if (ma == 0 & mb > 0) {
C <- B
} else if (ma > 0 & mb == 0) {
C <- A
} else {
# bits <- sparse(1, max(ma, mb))
bits <- zeros(1, max(c(ma, mb)))
bits[A] <- 1
bits[B] <- 1
C <- find(bits)
}
return(C)
}