2024-03-26 23:51:09 +04:00

64 lines
1.3 KiB
C++

#include <iostream>
void m_swap(int* arr, int i_1, int i_2) {
int tmp = arr[i_1];
arr[i_1] = arr[i_2];
arr[i_2] = tmp;
}
int fib(int n) { //O(2**n)
if (n < 2)
return 1;
return fib(n - 1) + fib(n - 2);
}
void sort_choice(int arr[], int size) { //n*n
int i_mn = 0;
for (int i = 0; i < size; ++i) {
i_mn = i;
for (int j = i + 1; j < size; ++j) {
if (arr[j] < arr[i_mn]) {
i_mn = j;
}
}
if (i != i_mn)
m_swap(arr, i, i_mn);
}
}
void quickSort(int* arr, int left, int right) //n logN
{
int piv;
int index;
int _left = left;
int _right = right;
piv = arr[left];
while (left < right)
{
while ((arr[right] > piv) && (left < right))
right--;
if (left != right)
{
arr[left] = arr[right];
left++;
}
while ((arr[left] < piv) && (left < right))
left++;
if (left != right)
{
arr[right] = arr[left];
right--;
}
}
arr[left] = piv;
index = left;
left = _left;
right = _right;
if (left < index)
quickSort(arr, left, index - 1);
if (right > index)
quickSort(arr, index + 1, right);
}