From ae90cb76ace17c6a2b0bee34d151242855ca5bab Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Mon, 15 Nov 2021 16:52:00 +0200 Subject: Add files via upload --- Sem. 06/binarySearch.cpp | 33 ++++++++++++++++++++++++++++ Sem. 06/linearSearch.cpp | 45 ++++++++++++++++++++++++++++++++++++++ Sem. 06/printArray.cpp | 18 ++++++++++++++++ Sem. 06/reverse.cpp | 23 ++++++++++++++++++++ Sem. 06/sieveOfEratosthenes.cpp | 48 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 167 insertions(+) create mode 100644 Sem. 06/binarySearch.cpp create mode 100644 Sem. 06/linearSearch.cpp create mode 100644 Sem. 06/printArray.cpp create mode 100644 Sem. 06/reverse.cpp create mode 100644 Sem. 06/sieveOfEratosthenes.cpp diff --git a/Sem. 06/binarySearch.cpp b/Sem. 06/binarySearch.cpp new file mode 100644 index 0000000..c4132c9 --- /dev/null +++ b/Sem. 06/binarySearch.cpp @@ -0,0 +1,33 @@ +#include +using namespace std; + +bool binarySearch(const int arr[], unsigned size, int searched) +{ + unsigned fromIndex = 0; + unsigned toIndex = size - 1; + + while (fromIndex <= toIndex) + { + unsigned midIndex = fromIndex + (toIndex - fromIndex) / 2; + + if (arr[midIndex] == searched) + return true; + + if (arr[midIndex] < searched) + fromIndex = midIndex + 1; + else + toIndex = midIndex - 1; + } + + return false; +} + + +int main() +{ + + int arr[] { 1, 2, 3, 4,5,6,7,8}; + cout << binarySearch(arr, 8); + +} + diff --git a/Sem. 06/linearSearch.cpp b/Sem. 06/linearSearch.cpp new file mode 100644 index 0000000..d5d2ff1 --- /dev/null +++ b/Sem. 06/linearSearch.cpp @@ -0,0 +1,45 @@ +#include +#include +using namespace std; + + +bool linearSearch(const int arr[], unsigned size, int el) +{ + for (unsigned i = 0; i < size; i++) + { + if (arr[i] == el) + return true; + } + return false; +} + +bool binarySearch(const int arr[], unsigned size, int searched) +{ + unsigned fromIndex = 0; + unsigned toIndex = size - 1; + + while (fromIndex <= toIndex) + { + unsigned midIndex = fromIndex + (toIndex - fromIndex) / 2; + + if (arr[midIndex] == searched) + return true; + + if (arr[midIndex] < searched) + fromIndex = midIndex + 1; + else + toIndex = midIndex - 1; + } + + return false; +} + + + +int main() +{ + const unsigned SIZE = 8; + int arr[] { 1, 12, 33, 14,35,4,17,38}; + cout << linearSearch(arr, SIZE, 14); +} + diff --git a/Sem. 06/printArray.cpp b/Sem. 06/printArray.cpp new file mode 100644 index 0000000..af69b41 --- /dev/null +++ b/Sem. 06/printArray.cpp @@ -0,0 +1,18 @@ +#include +using namespace std; + + +void print(const int arr[], unsigned int len) +{ + cout << "[ "; + for (int i = 0; i < len; i++) + cout << arr[i] << " "; + cout << "]" << endl; +} + +int main() +{ + int arr[] { 1, 2, 3, 4, 5, 6, 7, 8}; + print(arr, 8); +} + diff --git a/Sem. 06/reverse.cpp b/Sem. 06/reverse.cpp new file mode 100644 index 0000000..e239289 --- /dev/null +++ b/Sem. 06/reverse.cpp @@ -0,0 +1,23 @@ +#include +using namespace std; + +void swap(int& x, int& y) +{ + int temp = x; + x = y; + y = temp; +} + +void reverse(int arr[], unsigned size) +{ + for (unsigned i = 0; i < size / 2; i++) + swap(arr[i], arr[size - 1 - i]); +} + +int main() +{ + int arr[] { 1, 2, 3, 4,5,6,7,8}; + reverse(arr, 8); + print(arr, 8); +} + diff --git a/Sem. 06/sieveOfEratosthenes.cpp b/Sem. 06/sieveOfEratosthenes.cpp new file mode 100644 index 0000000..2505ad9 --- /dev/null +++ b/Sem. 06/sieveOfEratosthenes.cpp @@ -0,0 +1,48 @@ +#include +using namespace std; + +void init(bool arr[], unsigned size, bool value) +{ + for (unsigned i = 0; i < size; i++) + arr[i] = value; +} + +void sieveEratosthenes(bool arr[], unsigned size) +{ + arr[0] = arr[1] = false; + + for (unsigned i = 2; i < size; i++) + { + if (!arr[i]) //ако числото е задраскано + continue; + + for (unsigned iter = i + i; iter < size; iter += i) + arr[iter] = false; //задраскваме + } +} + +void printSieve(const bool arr[], unsigned size) +{ + for (unsigned i = 0; i < size; i++) + { + if (arr[i]) + { + cout << i << " "; + } + } +} + + +int main() +{ + const unsigned MAX_SIZE = 1000; + bool arr[MAX_SIZE]; + + int n; + cin >> n; + + init(arr, n, true); + sieveEratosthenes(arr, n); + printSieve(arr, n); +} + -- cgit v1.3.1-23-gd82d