B2

package sk.upjs.paz.cvicenie02;

import java.util.Arrays;

public class Zlozitost {

    public static boolean jeUsporiadane(int[] p) {
        for (int i = 0; i < p.length - 1; i++) {
            if (p[i] > p[i + 1]) {
                return false;
            }
        }
        // pole je usporiadane
       /* int diff = 0;
        for (int k = Integer.MIN_VALUE; k < Integer.MAX_VALUE; k++) {
            for (int i = 0; i < p.length - 1; i++) {
                diff = Math.max(diff, p[i + 1] - p[i]);
            }
        }*/

        return true;
    }

   public static int binarneHladajIndex(int[] p, int hodnota) {
        // toto je index v poli, kde je urcite mensia alebo rovnaka hodnota ako hladana hodnota
        int odIdx = 0;
        // je tam urcite vacsia alebo rovnaka hodnota
        int poIdx = p.length - 1;

        // velkost intervalu ktory prehladavame
        while (odIdx <= poIdx) {
            int stredIdx = (odIdx + poIdx) / 2;
            if (p[stredIdx] == hodnota) {
                return stredIdx;
            }
            if (hodnota < p[stredIdx]) {
                // idem dolava
                poIdx = stredIdx - 1;
            } else {
                // idem doprava
                odIdx = stredIdx + 1;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        int pocet = 20;
        int[] a = new int[pocet];
        for (int i = 0; i < pocet; i++) {
            a[i] = 2*i;
        }
        System.out.println(Arrays.toString(a));
        for (int i = 0; i < pocet * 2; i++) {
            System.out.println(i + ": " +binarneHladajIndex(a, i));
        }

    }
}
 
package sk.upjs.paz.cvicenie02;

import java.util.ArrayList;
import java.util.List;

public class BubbleSort extends TriediaciAlgoritmus{
    @Override
    protected void utried(int dlzkaPola) {
        // porovnaj idx1, idx2
        // vymen idx1, idx2
        // vypisPole
        // +premenna dlzkaPola
        /*for (int i = 0; i < dlzkaPola; i++) {
            for (int j = 0; j < dlzkaPola - i - 1; j++) {
                if (porovnaj(i, i + 1) > 0) {
                    vymen(i, i + 1);
                }
            }
        }*/

        for (int iteracia = 0; iteracia < dlzkaPola - 1; iteracia++) {
            boolean bolaVymena = false;
            for (int i = 0; i < dlzkaPola - 1; i++) {
                if (porovnaj(i, i + 1) > 0) {
                    vymen(i, i + 1);
                    bolaVymena = true;
                }
            }
            vypisPole();
            if (!bolaVymena) {
                break;
            }

            // toto je N*N
            /*List<Integer> a = new ArrayList<>();
            for (int i = 0; i < a.size(); i++) {
                if (a.contains(1)) {
                    System.out.println("");
                }
            }*/

        }





    }
}
 
package sk.upjs.paz.cvicenie02;

import java.util.Arrays;

public class Triedenie {

    public static void main(String[] args) {
        int[] a = {4, 1, 0, 9, 5, 3, 15, 34};
        System.out.println(Arrays.toString(a));
        TriediaciAlgoritmus bubbleSort = new BubbleSort();
        bubbleSort.utried(a);
        System.out.println(Arrays.toString(a));
    }

}