Advertisement
gon2

rbh

Mar 21st, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.35 KB | None | 0 0
  1. package heima9;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.util.ArrayList;
  8. import java.util.Collections;
  9.  
  10. import edu.princeton.cs.algs4.*;
  11.  
  12. public class RBHvsSTHTest {
  13.  
  14.     public static void main(String[] args) {
  15.  
  16.         SeparateChainingHashST<String, Integer> sch = new SeparateChainingHashST<>();
  17.         RedBlackHashST<String, Integer> rbh = new RedBlackHashST<>();
  18.         ArrayList<String> ord = new ArrayList<>();
  19.         StopwatchCPU klukka;
  20.         // notum skŕanna úr síðasta dæmi til að prófa
  21.         InputStream in = RBHvsSTHTest.class.getResourceAsStream("words.txt");
  22.         BufferedReader br = new BufferedReader(new InputStreamReader(in));
  23.         // setjum orðin í arraylistann
  24.         try {
  25.             String lina;
  26.             while ((lina = br.readLine()) != null) {
  27.                 ord.add(lina);
  28.             }
  29.         } catch (IOException e) {
  30.             System.err.println(e.getMessage());
  31.         }
  32.        
  33.         ArrayList<String> ordStokkud = new ArrayList<>(ord); // afritum
  34.         Collections.shuffle(ordStokkud); // stokkum listanum
  35.        
  36.         double timi = 0.0;
  37.         int val = 0;
  38.         int fjoldi = 10000; // hversu oft við keyrum mælingarnar
  39.        
  40.         // setjum orðin í hash töflurnar
  41.         for (int i=0; i<fjoldi; i++) {
  42.             val = 0;
  43.             klukka = new StopwatchCPU();
  44.             for (String s : ordStokkud) {
  45.                 sch.put(s, val);   
  46.                 val++;
  47.             }
  48.             timi += klukka.elapsedTime();
  49.         }
  50.         timi /= fjoldi; // meðaltal
  51.        
  52.         StdOut.println("SCH innsetning: " + timi*100 + " ms");
  53.         timi = 0;
  54.        
  55.         for (int i=0; i<fjoldi; i++) {
  56.             val = 0;
  57.             klukka = new StopwatchCPU();
  58.             for (String s : ordStokkud) {  
  59.                 rbh.put(s, val);   
  60.                 val++;
  61.             }
  62.             timi += klukka.elapsedTime();
  63.         }
  64.         timi /= fjoldi; // meðaltal
  65.        
  66.         StdOut.println("RBH innsetning: " + timi*100 + " ms");     
  67.         timi = 0;
  68.         StdOut.println();
  69.        
  70.         // mælum tímann sem það tekur að ná í lykil
  71.         for (int i=0; i<fjoldi; i++) {
  72.             klukka = new StopwatchCPU();
  73.             for (String s : ord)
  74.                 sch.get(s);
  75.             timi += klukka.elapsedTime();
  76.         }
  77.         timi /= fjoldi; // meðaltal
  78.        
  79.         StdOut.println("SCH lyklaleit: " + timi*100 + " ms");  
  80.         timi = 0;
  81.        
  82.         for (int i=0; i<fjoldi; i++) {
  83.             klukka = new StopwatchCPU();
  84.             for (String s : ord)
  85.                 rbh.get(s);
  86.             timi += klukka.elapsedTime();
  87.         }
  88.         timi /= fjoldi; // meðaltal
  89.        
  90.         StdOut.println("RBH lyklaleit: " + timi*100 + " ms");
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement