This commit is contained in:
NaiJi ✨ 2024-04-22 09:42:40 +04:00
parent ee8d34d954
commit fb847aa4bd
1 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,48 @@
#include <stdio.h>
#define SIZE 10
// complexity is O(n^2)
// how is that calculated?
// well we run two loops, even if the first one is N
// the second one is first N, then N - 1, then N - 2, ...
// all the way down to N - N + 1
// what's the sum of them?
// imagine sum of all form 1 to 100
// okay, 1 + 100 = 101
// okay, 2 + 99 = 101
// etc all the way down to 50 and 51,
// so we have 50 times 101 to calculate sum of 1 to 100
// which means:
// 101 * 50 or
// (N+1) * N/2 or
// N^2 + N which makes
// O(N^2 + N) then we drop the non-significant + N
// O(N^2)
void bubble_sort(int array[], int size)
{
int shift = 0;
for (int i = 1; i < size; ++i)
{
for (int j = 1; j < size - shift; ++j)
{
if (array[j] < array[j-1])
{
int temp = array[j];
array[j] = array[j-1];
array[j-1] = temp;
}
}
++shift;
}
}
int main()
{
int array[SIZE] = { 5, 7, 3, 2, 11, 16, 1, 4, 3, 2 };
bubble_sort(array, SIZE);
for (int i = 0; i < SIZE; ++i)
printf("%d ", array[i]);
printf("\n");
}