Advertisement
Guest User

Untitled

a guest
Dec 6th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.51 KB | None | 0 0
  1. public static void main(String[] args) {
  2.         int m = 20;
  3.         int c = m/2;
  4.         Object[] T = new Object[m];
  5.         Random rand = new Random();
  6.         for(int i = 0; i < m; i++){
  7.             int value = rand.nextInt(m);
  8.             insert(T, value, c, 0, 4);
  9.         }
  10.         System.out.println(Arrays.toString(T));
  11.     }
  12.  
  13.     protected static void insert(Object[] T, int x, int c, int setLimit, int hashLimit){
  14.         for (int i = 0; i < T.length; i++) {
  15.             int j = Math.floorMod(h(x, T) + i, T.length);
  16.             if (T[j] == null) {
  17.                 if (Math.abs(j - h(x,T)) <= c) {
  18.                     T[j] = x;
  19.                     return;
  20.                 } else {
  21.                     for (int k = 0; k <= c; k++) {
  22.                         int index = Math.floorMod(h(x, T) + k, T.length);
  23.                         if (T[index] != null) {
  24.                             int y = (int) T[index];
  25.                             if (Math.abs(j - h(y, T)) <= c) {
  26.                                 T[j] = y;
  27.                                 T[index] = x;
  28.                                 return;
  29.                             }
  30.                         }
  31.                     }
  32.                 }
  33.             }
  34.         }
  35.         rehash(T, x, c, setLimit, hashLimit);
  36.     }
  37.  
  38.     protected static void rehash(Object[] T, int x, int c, int setLimit, int hashLimit) {
  39.         if (setLimit <= hashLimit) {
  40.             setLimit++;
  41.             Object[] B = new Object[T.length];
  42.             for(int i = 0; i < B.length; i++) {
  43.                 if(T[i] != null){
  44.                     insert(B, (int) T[i], c, setLimit, hashLimit);
  45.                 }
  46.             }
  47.             System.out.println("B " + Arrays.toString(B));
  48.             System.out.println("T " + Arrays.toString(T));
  49.             if (Arrays.equals(T, B)) {
  50.                 System.out.println("Element "+ x +" gΓ₯r ej att sΓ€tta in");
  51.             } else {
  52.                 T = B;
  53.             }
  54.         }
  55.     }
  56.  
  57.     protected static int h(int x, Object[] T){
  58.         return Math.floorMod(x, T.length);
  59.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement