summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/java1/aufgabe8/FloydAndBentley.java
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2014-12-07 19:15:58 +0100
committerStefan Suhren <suhren.stefan@fh-swf.de>2014-12-07 19:18:03 +0100
commit9acea903216dbe371dd7b41cbf23b46a5732bcb4 (patch)
tree5a61491ad22e470db8151d2e07f163b011c72d6e /src/de/fhswf/in/inf/java1/aufgabe8/FloydAndBentley.java
parent8a53a8fca255e4a84ca0e35dac925a223738b98a (diff)
downloadJava1-9acea903216dbe371dd7b41cbf23b46a5732bcb4.tar.gz
Java1-9acea903216dbe371dd7b41cbf23b46a5732bcb4.zip
Refactored the packagenames fo better sorting
Diffstat (limited to 'src/de/fhswf/in/inf/java1/aufgabe8/FloydAndBentley.java')
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe8/FloydAndBentley.java130
1 files changed, 0 insertions, 130 deletions
diff --git a/src/de/fhswf/in/inf/java1/aufgabe8/FloydAndBentley.java b/src/de/fhswf/in/inf/java1/aufgabe8/FloydAndBentley.java
deleted file mode 100644
index 5416fe5..0000000
--- a/src/de/fhswf/in/inf/java1/aufgabe8/FloydAndBentley.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/**
- *
- */
-package de.fhswf.in.inf.java1.aufgabe8;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-
-/**
- * Utility class for the Floyd and Bentley algorithm.
- *
- * @author $Author: $
- * @version $Revision: $, $Date: $ UTC
- */
-public final class FloydAndBentley
-{
-
- private static Random rnd = new Random();
-
- /**
- * Private constructor for utility class.
- *
- */
- private FloydAndBentley()
- {
- }
-
- /**
- * A function which chooses a sample from a List with the Floyd and Bentley
- * algorithm. (Recursive algorithm)
- *
- * @param <T>
- * Type of the Lists.
- * @param s
- * The set from which the sample is chosen.
- * @param k
- * The number of items to be chosen.
- * @return Return the sample.
- */
- public static <T> List<T> sample(List<T> s, int k)
- {
- if (s.isEmpty())
- {
- throw new IllegalArgumentException("Set is empty");
- }
- if (k > s.size())
- {
- throw new IllegalArgumentException("k is bigger than the Set");
- }
-
- List<T> ret = new ArrayList<>(k);
- sampleRec(s, k, ret);
-
- return ret;
-
- }
-
- /**
- * The recursive implementation of the Floyd and Bentley algorithm.
- *
- * @param <T>
- * Type of the Lists.
- * @param s
- * The set from which the sample is chosen.
- * @param k
- * The number of items to be chosen.
- * @param ret
- * Return the sample.
- */
- private static <T> void sampleRec(List<T> s, int k, List<T> ret)
- {
- if (ret.size() >= k)
- {
- return;
- }
-
- T val = s.get(rnd.nextInt(s.size() - (k - ret.size() - 1)));
-
- if (ret.contains(val))
- {
- val = s.get(s.size() - (k - ret.size() - 1));
- }
-
- ret.add(val);
-
- sampleRec(s, k, ret);
-
- }
-
- /**
- * A function which chooses a sample from a List with the Floyd and Bentley
- * algorithm. (Non recursive algorithm)
- *
- * @param <T>
- * Type of the Lists.
- * @param s
- * The set from which the sample is chosen.
- * @param k
- * The number of items to be chosen.
- * @return Return the sample.
- */
- public static <T> List<T> sample2(List<T> s, int k)
- {
- if (s.isEmpty())
- {
- throw new IllegalArgumentException("Set is empty");
- }
- if (k > s.size())
- {
- throw new IllegalArgumentException("k is bigger than the Set");
- }
-
- List<T> ret = new ArrayList<>(k);
-
- for (int i = 0; i < k; i++)
- {
- T val = s.get(rnd.nextInt(s.size() - (k - ret.size() - 1)));
-
- if (ret.contains(val))
- {
- val = s.get(s.size() - (k - ret.size() - 1));
- }
-
- ret.add(val);
- }
-
- return ret;
- }
-}