сортиране
    - метод на мехурчето
    - сортиране с броене
    - sort от стандартна библиотека





sort - аргументи
    - първи аргумент - начало
    - втори аргумент - край ( начало + брой )
    - трети аргумент ?- как да ги сортираме точно





трети аргумент на sort
    - булева функция с параметри от типа на сортирания масив
    примери има във файла sort.cpp
    задачи
    Вилица и Пържоли на скара



Защо ползваме sort
    сложност на sort - О( n log( n ) )
    сложност на "сортиране с броене" - О( n ), НО е числата трябва да са по-малко от ~10^8





Greedy
какво е greedy алгоритъм
 - алчна статегия - винаги избира най-доброто за момента
 - не променя вече направени избори
 - грийди алгоритмите често са доста бързи и са лесни за писане.
 - ДАЛЕЧ НЕ ВИНАГИ гарантират оптимално решение.






 Задача със банкнотите
 - 1, 5, 10, 20, 50, 100
 - колко най-малко банкноти ни трябват, за да направим дадена сума


 Решение
    взимаме най-голямата банкнота, която можем
    пример - 467 - 367 - 267 - 167 - 67 - 17 - 7 - 2 - 1 - 0

 Защо работи ? - числата са избрани специално ?
 рабори ли в общия случай?
 Не пример: банктноти със стойност 1, 3, 4 и сума 6





 Грийди със сортиране:
 като имаме някаква редица и не знаем какво да правим с нея - нека да я сортираме и да видим дали ще стане ( ни хрумне ) нещо хубаво





 Вилица и следобедно учене
  - имаме n задачи и k минути. Всяка задача ни отнема a_i минути, колко най-много задачи можем да решим за това време.
  решение: сортираме възходящо задачи по време и взимаме последователно задачата с най-малко време, която е останала




  Вилица и песни по радиото

  Решение:сортираме по край на песента възходящо. Обхождаме песните и взимаме текущата ако можем ( не се застъпва с никоя от досега избраните )
  доказателство
  може да видите реализация във файла radio.cpp




  Вилица и куфарите
  решение: сортираме възходящо. винаги взимаме най-десния, ако можем с него взимаме и най-левия останал
  доказателство





