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) {
|
myunion <- function(A, B) {
|
||||||
stop("needs translation")
|
# MYUNION Union of two sets of positive integers (much faster than built - in union)
|
||||||
# function C = myunion(A,B)
|
# 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)
|
if (is.null(A)) {
|
||||||
# ma = 0;
|
ma <- 0
|
||||||
# else
|
} else {
|
||||||
# ma = max(A);
|
ma <- max(A)
|
||||||
# end
|
}
|
||||||
|
|
||||||
# if isempty(B)
|
if (is.null(B)) {
|
||||||
# mb = 0;
|
mb <- 0
|
||||||
# else
|
} else {
|
||||||
# mb = max(B);
|
mb <- max(B)
|
||||||
# end
|
}
|
||||||
|
|
||||||
# if ma==0 & mb==0
|
if (ma == 0 & mb == 0) {
|
||||||
# C = [];
|
C <- vector()
|
||||||
# elseif ma==0 & mb>0
|
} else if (ma == 0 & mb > 0) {
|
||||||
# C = B;
|
C <- B
|
||||||
# elseif ma>0 & mb==0
|
} else if (ma > 0 & mb == 0) {
|
||||||
# C = A;
|
C <- A
|
||||||
# else
|
} else {
|
||||||
# %bits = sparse(1, max(ma,mb));
|
# bits <- sparse(1, max(ma, mb))
|
||||||
# bits = zeros(1, max(ma,mb));
|
bits <- zeros(1, max(c(ma, mb)))
|
||||||
# bits(A) = 1;
|
bits[A] <- 1
|
||||||
# bits(B) = 1;
|
bits[B] <- 1
|
||||||
# C = find(bits);
|
C <- find(bits)
|
||||||
# end
|
}
|
||||||
|
return(C)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue