Advertisement
Guest User

Untitled

a guest
Oct 17th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.79 KB | None | 0 0
  1. //izziv 1
  2. public class Izziv1 {
  3.  
  4.     private static int[] generateTable(int n){
  5.         int[] tabela = new int[n];
  6.         for (int i = 1; i<n; i++){
  7.             tabela[i] = i;
  8.         }
  9.         return tabela;
  10.                
  11.     }
  12.     private static int findLinear(int[] a, int v){
  13.         int velikost = a.length;
  14.         for (int i = 0; i <= velikost; i++ ){
  15.             if(a[i] == v){
  16.                 return i;
  17.             }
  18.            
  19.         }
  20.         return -1;
  21.        
  22.     }
  23.     //@SuppressWarnings("unused")
  24.     private static int findBinary(int[] a, int l, int r, int v){
  25.         // a == tabela, l == start, r == end, v == searched number
  26.         int sredina = (l + r) / 2;
  27.         if (l<r){
  28.             return -1;
  29.         }
  30.         if(v == a[sredina]){
  31.             return sredina;
  32.         } else if(v <a[sredina]){
  33.             return findBinary(a, l, sredina - 1, v);
  34.         }else {
  35.             return findBinary(a, sredina + 1, r, v);
  36.         }
  37.        
  38.     }
  39.    
  40.     private static long timeLinear (int n){
  41.         int[] tableLinear = generateTable(n);
  42.        
  43.         long startTime = System.nanoTime();
  44.         int randomNumber = (int)(Math.random()*n+1);
  45.         findLinear(tableLinear, randomNumber);
  46.         long endTime = System.nanoTime() - startTime;
  47.         return endTime;
  48.        
  49.     }
  50.     private static long timeBinary (int n){
  51.         int[] tableBinary = generateTable(n);
  52.        
  53.         long startTime = System.nanoTime();
  54.         int randomNumber = (int)(Math.random()*n+1);
  55.         findBinary(tableBinary, 1, tableBinary.length, randomNumber);
  56.         long endTime = System.nanoTime() - startTime;
  57.         return endTime;
  58.        
  59.     }
  60.  
  61.     public static void main(String[] args) {
  62.         // TODO Auto-generated method stub
  63.         //int n = 1000;
  64.         System.out.printf("n   Linearno   Dvojiško\n");
  65.         for (int i = 1000; i <= 100000; i+=1000){
  66.             System.out.printf("%d | %d | %d\n", i, timeLinear(i), timeBinary(i));
  67.         }
  68.        
  69.     }
  70.  
  71. }
  72.  
  73. /*če gre pr binarnem iskanju, na primer tko da iščemo element 13 v tabeli s 7 elementi pride do neskladja in pol vrnemo
  74.  * -1.
  75.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement