diff options
| author | Stefan Suhren <suhren.stefan@fh-swf.de> | 2014-12-07 19:15:58 +0100 |
|---|---|---|
| committer | Stefan Suhren <suhren.stefan@fh-swf.de> | 2014-12-07 19:18:03 +0100 |
| commit | 9acea903216dbe371dd7b41cbf23b46a5732bcb4 (patch) | |
| tree | 5a61491ad22e470db8151d2e07f163b011c72d6e /src/de/fhswf/in/inf/java1/aufgabe8/FloydAndBentley.java | |
| parent | 8a53a8fca255e4a84ca0e35dac925a223738b98a (diff) | |
| download | Java1-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.java | 130 |
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; - } -} |
