Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package heima9;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.Collections;
- import edu.princeton.cs.algs4.*;
- public class RBHvsSTHTest {
- public static void main(String[] args) {
- SeparateChainingHashST<String, Integer> sch = new SeparateChainingHashST<>();
- RedBlackHashST<String, Integer> rbh = new RedBlackHashST<>();
- ArrayList<String> ord = new ArrayList<>();
- StopwatchCPU klukka;
- // notum skŕanna úr síðasta dæmi til að prófa
- InputStream in = RBHvsSTHTest.class.getResourceAsStream("words.txt");
- BufferedReader br = new BufferedReader(new InputStreamReader(in));
- // setjum orðin í arraylistann
- try {
- String lina;
- while ((lina = br.readLine()) != null) {
- ord.add(lina);
- }
- } catch (IOException e) {
- System.err.println(e.getMessage());
- }
- ArrayList<String> ordStokkud = new ArrayList<>(ord); // afritum
- Collections.shuffle(ordStokkud); // stokkum listanum
- double timi = 0.0;
- int val = 0;
- int fjoldi = 10000; // hversu oft við keyrum mælingarnar
- // setjum orðin í hash töflurnar
- for (int i=0; i<fjoldi; i++) {
- val = 0;
- klukka = new StopwatchCPU();
- for (String s : ordStokkud) {
- sch.put(s, val);
- val++;
- }
- timi += klukka.elapsedTime();
- }
- timi /= fjoldi; // meðaltal
- StdOut.println("SCH innsetning: " + timi*100 + " ms");
- timi = 0;
- for (int i=0; i<fjoldi; i++) {
- val = 0;
- klukka = new StopwatchCPU();
- for (String s : ordStokkud) {
- rbh.put(s, val);
- val++;
- }
- timi += klukka.elapsedTime();
- }
- timi /= fjoldi; // meðaltal
- StdOut.println("RBH innsetning: " + timi*100 + " ms");
- timi = 0;
- StdOut.println();
- // mælum tímann sem það tekur að ná í lykil
- for (int i=0; i<fjoldi; i++) {
- klukka = new StopwatchCPU();
- for (String s : ord)
- sch.get(s);
- timi += klukka.elapsedTime();
- }
- timi /= fjoldi; // meðaltal
- StdOut.println("SCH lyklaleit: " + timi*100 + " ms");
- timi = 0;
- for (int i=0; i<fjoldi; i++) {
- klukka = new StopwatchCPU();
- for (String s : ord)
- rbh.get(s);
- timi += klukka.elapsedTime();
- }
- timi /= fjoldi; // meðaltal
- StdOut.println("RBH lyklaleit: " + timi*100 + " ms");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement