Searching and Sorting Flashcards

1
Q

How linear search works? What is its complexity?

A

Линейното търсене обхожда елементите в масив един по един, докато не намери търсения елемент.
- Worse-Case - O(n)
- Best-Case - O(1)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

How binary search works? What is its complexity?

A

Двоичното търсене работи върху сортиран масив, като на всяка стъпка разделя масива на две и сравнява средния елемент с търсения. Използва техниката разделяй и владей
- Worse-Case - O(log⁡ n)
- Best-Case - O(1)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is divide and conquer? Give examples.

A

Това е техника за решаване на проблеми, като ги разделя на по-малки подпроблеми, решава ги поотделно и след това ги комбинира. Примери: Merge Sort, QuickSort.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

List 4 sorting algorithms and compare them.

A
  • Bubble Sort: O(n^2), бавен, прост.
  • Selection Sort: O(n^2), бавен, но прави по-малко замени.
  • Merge Sort: O(n log n), стабилен, използва повече памет.
  • Quick Sort: O(n^2), бърз, но нестабилен в най-лошия случай.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How does merge sort works?

A

Разделя масива на две половини, сортира всяка от тях и ги слива в един сортиран масив. Това се повтаря рекурсивно. Изполва техниката “разделяй и владей.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How does QuickSort work?

A

Избира pivot, разделя масива на две части (по-малки и по-големи от него) и след това сортира всяка част рекурсивно. Използва техниката “разделяй и владей”.
Конкатенира в реда ляв масив - pivot - десен масив.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly