Translated myunion()
This commit is contained in:
parent
a757a4435c
commit
f2f59ba7f8
1 changed files with 26 additions and 27 deletions
53
R/myunion.R
53
R/myunion.R
|
|
@ -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 (is.null(A)) {
|
||||
ma <- 0
|
||||
} else {
|
||||
ma <- max(A)
|
||||
}
|
||||
|
||||
# if isempty(B)
|
||||
# mb = 0;
|
||||
# else
|
||||
# mb = max(B);
|
||||
# end
|
||||
if (is.null(B)) {
|
||||
mb <- 0
|
||||
} else {
|
||||
mb <- max(B)
|
||||
}
|
||||
|
||||
# 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 (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)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue