diff options
5 files changed, 167 insertions, 0 deletions
| -rw-r--r-- | Sem. 06/binarySearch.cpp | 33 | ||||
| -rw-r--r-- | Sem. 06/linearSearch.cpp | 45 | ||||
| -rw-r--r-- | Sem. 06/printArray.cpp | 18 | ||||
| -rw-r--r-- | Sem. 06/reverse.cpp | 23 | ||||
| -rw-r--r-- | Sem. 06/sieveOfEratosthenes.cpp | 48 |
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 <iostream>
+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 <iostream>
+#include <vector>
+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 <iostream>
+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 <iostream>
+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 <iostream>
+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);
+}
+
|
