Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package perfectHashing;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileReader;
- import java.util.ArrayList;
- public class QuadraticSoln implements IPerfectHashing ,IHashing{
- int[]table;
- private Integer[][]hashFunction;
- private Integer[][]xMatrix;
- private UniversalHashing universal;
- private int recontructionCounter = 0;
- public QuadraticSoln() {
- }
- @Override
- public void createTable(ArrayList<Integer> elements) {
- recontructionCounter = 0;
- universal = new UniversalHashing();
- hashFunction = universal.randomMatrix((elements.size()*elements.size()));
- table =new int[elements.size()*elements.size()];
- int counter =0;
- int index=0;
- boolean out = false;
- while(counter < elements.size()){
- xMatrix = universal.XMatrix(elements.get(counter));
- index= universal.addressMatrix(hashFunction, xMatrix);
- for (int i = 0; i < table.length; i++) {
- //System.out.println(table[i]);
- table[i]=-1;
- }
- //System.out.println("jjjjjjjjjjjjjjjjj "+table.length);
- if (table[index] == -1) {
- System.out.println("m");
- table[index] = elements.get(counter);
- }else{
- //System.out.println("llllllllllllllllllll");
- recontructionCounter++;
- out = true;
- break;
- }
- }
- if ( !out ){
- return;
- }else{
- createTable(elements);
- out = false;
- }
- }
- @Override
- public boolean search(Integer key) {
- xMatrix = universal.XMatrix(key);
- int index= universal.addressMatrix(hashFunction, xMatrix);
- if (table[index] == -1) {
- return false;
- }else{
- return true;
- }
- }
- @Override
- public int numOfRecontruction() {
- // TODO Auto-generated method stub
- return recontructionCounter;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement