Compare commits

..

No commits in common. "ca7585931115b436f932432c57956c7c5ac48528" and "488a8596b5a6f4a6535d0d9ad3f49592c121bed7" have entirely different histories.

2 changed files with 0 additions and 91 deletions

View File

@ -1,45 +0,0 @@
#include <math.h>
#include <stdio.h>
// complexity is O(sqrt(N))
// well we need ot find an exact moment,
// let's say "height" at which our crystal
// balls break, for that we only have 2 balls,
// so we can't do binary search, since the range
// is tooooo huge, therefore we run a linear
// growth bigger than N, but small enough to find where
// the first ball breaks, then we take the interval
// between: [the previous non-break] and [where it broken]
// and run a normal linear search
// therefore we run sqrt(n) + sqrt(n) times
// so it's O(sqrt(N)
#define SIZE 999
int two_crystal_balls_search(int array[], int size, int value)
{
int i = 0;
int step = sqrt((double)(size));
for (; i < size; i = i + step)
if (array[i] >= value)
break;
printf("Step is: %d\n", step);
printf("The first one broke at: %d\n", i);
i = i - step;
for (; i < i + step; ++i)
if (array[i] >= value)
return i;
return -1;
}
int main()
{
int array[SIZE];
for (int i = 0; i < SIZE; ++i)
array[i] = i;
printf("The balls break at: %d\n", two_crystal_balls_search(array, SIZE, 567));
}

View File

@ -1,46 +0,0 @@
#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)
{
for (int i = 0; i < size; ++i)
{
for (int j = 1; j < size - i; ++j)
{
if (array[j] < array[j-1])
{
int temp = array[j];
array[j] = array[j-1];
array[j-1] = temp;
}
}
}
}
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");
}