Обяснени алгоритми - какви са те и общи алгоритми за сортиране

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

  1. Налейте вода в чайника, затворете капака и го включете.
  2. Свалете капака от френската преса и изсипете 17 грама смляно кафе.
  3. Когато водата в чайника кипи, изсипете 290 грама гореща вода във френската преса.
  4. Поставете обратно капака на френската преса с буталото нагоре.
  5. Изчакайте 4 минути.
  6. Внимателно натиснете буталото надолу, докато достигне дъното.
  7. Изсипете кафе в чаша.

В компютърните науки често срещаните алгоритми имат имена като "Quicksort" и "Bogosort". Алгоритмите често се групират в различни категории като алгоритми за търсене, сортиране и компресиране. Освен това алгоритмите могат да бъдат описани чрез подхода, необходим за изпълнение на задача, като рекурсивно, обратно проследяване, разделяне и завладяване, алчност и груба сила.

Алгоритмите често се сдвояват със структури от данни, въпреки че те са фундаментално различни. Структурите на данни са методи за съхраняване на данни, така че алгоритъмът да може лесно да извършва операции върху тях.

Някои често срещани примери за структури от данни са масиви, стекове, опашки, свързани списъци, дървета, графики, хеш таблици и купчини.

Ефективност

Алгоритмите често се оценяват и сравняват въз основа на тяхната ефективност и необходимите ресурси. Един от най-често срещаните начини за оценка на алгоритъма е да се разгледа неговата сложност във времето чрез метод, наречен Big O notation.

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

Алгоритми за сортиране

Алгоритмите за сортиране се предлагат в различни вкусове в зависимост от вашата необходимост. Някои, много разпространени и широко използвани са:

Бързо сортиране

Никоя дискусия за сортиране не е пълна, без да се спомене Бързо сортиране.

Сливане на сортиране

Алгоритъмът за сортиране на обединяване разчита на разделяне и сортиране на по-малки масиви, преди да ги обедини в един сортиран масив.

Учебната програма на freeCodeCamp подчертава силно създаването на алгоритми. Това е така, защото ученето на алгоритми е добър начин за упражняване на умения за програмиране. Интервюиращите най-често тестват кандидатите по алгоритми по време на интервюта за работа на разработчици.