From fb257e59acfb16883464b970062718b1bd675e87 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 10 Feb 2024 08:35:18 +0000 Subject: [PATCH 01/26] some changes --- task_01/src/main.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/task_01/src/main.cpp b/task_01/src/main.cpp index 0e4393ba..353f11db 100644 --- a/task_01/src/main.cpp +++ b/task_01/src/main.cpp @@ -1,3 +1,6 @@ #include -int main() { return 0; } +int main() { + std::cout << "1212"; + return 0; +} From 0aa2aa9cfe69d8e78f5887e0aee59b0dbefc4e37 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Mon, 19 Feb 2024 11:16:25 +0000 Subject: [PATCH 02/26] answers --- task_01/src/main.cpp | 9 +++++---- task_01/src/test.cpp | 22 +++++++++++++++++++--- task_01/src/topology_sort.cpp | 1 - task_01/src/topology_sort.hpp | 1 - task_01/src/utils.cpp | 18 ++++++++++++++++++ task_01/src/utils.hpp | 5 +++++ 6 files changed, 47 insertions(+), 9 deletions(-) delete mode 100644 task_01/src/topology_sort.cpp delete mode 100644 task_01/src/topology_sort.hpp create mode 100644 task_01/src/utils.cpp create mode 100644 task_01/src/utils.hpp diff --git a/task_01/src/main.cpp b/task_01/src/main.cpp index 353f11db..5b0faafc 100644 --- a/task_01/src/main.cpp +++ b/task_01/src/main.cpp @@ -1,6 +1,7 @@ #include +#include -int main() { - std::cout << "1212"; - return 0; -} +#include "util.hpp" +#include "utils.hpp" + +int main() { return 0; } \ No newline at end of file diff --git a/task_01/src/test.cpp b/task_01/src/test.cpp index ef5a86ae..cb7648da 100644 --- a/task_01/src/test.cpp +++ b/task_01/src/test.cpp @@ -1,8 +1,24 @@ #include -#include "topology_sort.hpp" -TEST(TopologySort, Simple) { - ASSERT_EQ(1, 1); // Stack [] +#include +#include + +#include "utils.hpp" + +TEST(utils, Simple) { + ASSERT_EQ(Task1(9, std::vector < int > {1, 2, 4, 5, 6, 8, 10, 12}), (std::pair < int, int > {1,8})); + + ASSERT_EQ(Task1(39, std::vector < int > {1, 2, 4, 5, 6, 9, 10, 35}), (std::pair < int, int > {4,35})); + + ASSERT_EQ(Task1(14, std::vector < int > {1, 2, 4, 5, 6, 8, 10, 12}), (std::pair < int, int > {2,12})); + + EXPECT_THROW(Task1(1887, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), std::logic_error); + + EXPECT_THROW(Task1(12, std::vector{0,1,1,2,2}), std::logic_error); + + ASSERT_EQ(Task1(1338, std::vector < int > {10, 20, 40, 50, 60, 87, 100, 1278}), (std::pair < int, int > {60,1278})); + + ASSERT_EQ(Task1(22, std::vector < int > {10, 10, 11, 11, 12, 15}), (std::pair < int, int > {10,12})); } diff --git a/task_01/src/topology_sort.cpp b/task_01/src/topology_sort.cpp deleted file mode 100644 index e53f670c..00000000 --- a/task_01/src/topology_sort.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "topology_sort.hpp" diff --git a/task_01/src/topology_sort.hpp b/task_01/src/topology_sort.hpp deleted file mode 100644 index 6f70f09b..00000000 --- a/task_01/src/topology_sort.hpp +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/task_01/src/utils.cpp b/task_01/src/utils.cpp new file mode 100644 index 00000000..6a2871b4 --- /dev/null +++ b/task_01/src/utils.cpp @@ -0,0 +1,18 @@ +#include "utils.hpp" +#include +#include +#include + +std::pair Task1(int num, const std::vector arr) { + for (int i = 0, j = arr.size() - 1; i < j;) { + auto sum = arr[i] + arr[j]; + if (sum < num) + ++i; + else if (sum > num) + --j; + else if (sum == num) { + return std::pair{arr[i], arr[j]}; + } + } + throw std::logic_error(""); +} \ No newline at end of file diff --git a/task_01/src/utils.hpp b/task_01/src/utils.hpp new file mode 100644 index 00000000..16254fa7 --- /dev/null +++ b/task_01/src/utils.hpp @@ -0,0 +1,5 @@ +#pragma once +#include +#include + +std::pair Task1(int num, const std::vector arr); \ No newline at end of file From bb99d094aa2507886c484d8bb5d95cc31821a1d4 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sun, 25 Feb 2024 17:52:51 +0000 Subject: [PATCH 03/26] change --- task_01/src/test.cpp | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/task_01/src/test.cpp b/task_01/src/test.cpp index cb7648da..e04d13bb 100644 --- a/task_01/src/test.cpp +++ b/task_01/src/test.cpp @@ -1,24 +1,23 @@ +#include "utils.hpp" #include - - #include #include -#include "utils.hpp" - TEST(utils, Simple) { - ASSERT_EQ(Task1(9, std::vector < int > {1, 2, 4, 5, 6, 8, 10, 12}), (std::pair < int, int > {1,8})); - - ASSERT_EQ(Task1(39, std::vector < int > {1, 2, 4, 5, 6, 9, 10, 35}), (std::pair < int, int > {4,35})); - - ASSERT_EQ(Task1(14, std::vector < int > {1, 2, 4, 5, 6, 8, 10, 12}), (std::pair < int, int > {2,12})); - - EXPECT_THROW(Task1(1887, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), std::logic_error); - - EXPECT_THROW(Task1(12, std::vector{0,1,1,2,2}), std::logic_error); - - ASSERT_EQ(Task1(1338, std::vector < int > {10, 20, 40, 50, 60, 87, 100, 1278}), (std::pair < int, int > {60,1278})); - - ASSERT_EQ(Task1(22, std::vector < int > {10, 10, 11, 11, 12, 15}), (std::pair < int, int > {10,12})); + ASSERT_EQ(Task1(9, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), + (std::pair{1, 8})); + ASSERT_EQ(Task1(39, std::vector{1, 2, 4, 5, 6, 9, 10, 35}), + (std::pair{4, 35})); + ASSERT_EQ(Task1(14, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), + (std::pair{2, 12})); + EXPECT_THROW(Task1(1887, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), + std::logic_error); + EXPECT_THROW(Task1(12, std::vector{0, 1, 1, 2, 2}), std::logic_error); + ASSERT_EQ(Task1(1338, std::vector{10, 20, 40, 50, 60, 87, 100, 1278}), + (std::pair{60, 1278})); + ASSERT_EQ(Task1(22, std::vector{10, 10, 11, 11, 12, 15}), + (std::pair{10, 12})); + EXPECT_THROW(Task1(22, std::vector{11}), std::logic_error); + EXPECT_THROW(Task1(0, std::vector{}), std::logic_error); } From c8700d97837897e8486623c8ef01e39776ff78e2 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sun, 25 Feb 2024 18:16:21 +0000 Subject: [PATCH 04/26] Right_Test --- task_01/src/test.cpp | 4 ++-- task_01/src/utils.cpp | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/task_01/src/test.cpp b/task_01/src/test.cpp index e04d13bb..f2475990 100644 --- a/task_01/src/test.cpp +++ b/task_01/src/test.cpp @@ -18,6 +18,6 @@ TEST(utils, Simple) { (std::pair{60, 1278})); ASSERT_EQ(Task1(22, std::vector{10, 10, 11, 11, 12, 15}), (std::pair{10, 12})); - EXPECT_THROW(Task1(22, std::vector{11}), std::logic_error); - EXPECT_THROW(Task1(0, std::vector{}), std::logic_error); + EXPECT_THROW(Task1(22, std::vector{11}), WrongVector); + EXPECT_THROW(Task1(1233, std::vector{}), WrongVector); } diff --git a/task_01/src/utils.cpp b/task_01/src/utils.cpp index 6a2871b4..9d96d748 100644 --- a/task_01/src/utils.cpp +++ b/task_01/src/utils.cpp @@ -4,6 +4,9 @@ #include std::pair Task1(int num, const std::vector arr) { + if (arr.size() < 2) { + throw WrongVector(""); + } for (int i = 0, j = arr.size() - 1; i < j;) { auto sum = arr[i] + arr[j]; if (sum < num) From af1274b1fbdb174515793a9cbff905fb92d45d46 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sun, 25 Feb 2024 18:16:48 +0000 Subject: [PATCH 05/26] Right_Test_2 --- task_01/src/utils.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/task_01/src/utils.hpp b/task_01/src/utils.hpp index 16254fa7..45117087 100644 --- a/task_01/src/utils.hpp +++ b/task_01/src/utils.hpp @@ -2,4 +2,7 @@ #include #include -std::pair Task1(int num, const std::vector arr); \ No newline at end of file +std::pair Task1(int num, const std::vector arr); +class WrongVector : public std::runtime_error { + using std::runtime_error::runtime_error; +}; \ No newline at end of file From 7507e0054c7d9d3cc418bb43321ebeb77febacb1 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Mon, 26 Feb 2024 09:33:30 +0000 Subject: [PATCH 06/26] itog_changes --- task_01/src/test.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/task_01/src/test.cpp b/task_01/src/test.cpp index f2475990..b1da0e88 100644 --- a/task_01/src/test.cpp +++ b/task_01/src/test.cpp @@ -5,19 +5,13 @@ #include TEST(utils, Simple) { - ASSERT_EQ(Task1(9, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), - (std::pair{1, 8})); - ASSERT_EQ(Task1(39, std::vector{1, 2, 4, 5, 6, 9, 10, 35}), - (std::pair{4, 35})); - ASSERT_EQ(Task1(14, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), - (std::pair{2, 12})); - EXPECT_THROW(Task1(1887, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), - std::logic_error); + ASSERT_EQ(Task1(9, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), (std::pair{1, 8})); + ASSERT_EQ(Task1(39, std::vector{1, 2, 4, 5, 6, 9, 10, 35}), (std::pair{4, 35})); + ASSERT_EQ(Task1(14, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), (std::pair{2, 12})); + EXPECT_THROW(Task1(1887, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), std::logic_error); EXPECT_THROW(Task1(12, std::vector{0, 1, 1, 2, 2}), std::logic_error); - ASSERT_EQ(Task1(1338, std::vector{10, 20, 40, 50, 60, 87, 100, 1278}), - (std::pair{60, 1278})); - ASSERT_EQ(Task1(22, std::vector{10, 10, 11, 11, 12, 15}), - (std::pair{10, 12})); + ASSERT_EQ(Task1(1338, std::vector{10, 20, 40, 50, 60, 87, 100, 1278}), (std::pair{60, 1278})); + ASSERT_EQ(Task1(22, std::vector{10, 10, 11, 11, 12, 15}), (std::pair{10, 12})); EXPECT_THROW(Task1(22, std::vector{11}), WrongVector); EXPECT_THROW(Task1(1233, std::vector{}), WrongVector); } From 978668ba682b57a75ecc789dae35dc7e33dd0234 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 16 Mar 2024 08:36:08 +0000 Subject: [PATCH 07/26] some changes --- task_01/src/utils.cpp | 2 +- task_01/src/utils.hpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/task_01/src/utils.cpp b/task_01/src/utils.cpp index 9d96d748..934e64ea 100644 --- a/task_01/src/utils.cpp +++ b/task_01/src/utils.cpp @@ -5,7 +5,7 @@ std::pair Task1(int num, const std::vector arr) { if (arr.size() < 2) { - throw WrongVector(""); + throw WrongVector("Vector is too small"); } for (int i = 0, j = arr.size() - 1; i < j;) { auto sum = arr[i] + arr[j]; diff --git a/task_01/src/utils.hpp b/task_01/src/utils.hpp index 45117087..ead85070 100644 --- a/task_01/src/utils.hpp +++ b/task_01/src/utils.hpp @@ -2,7 +2,8 @@ #include #include -std::pair Task1(int num, const std::vector arr); class WrongVector : public std::runtime_error { using std::runtime_error::runtime_error; -}; \ No newline at end of file +}; + +std::pair Task1(int num, const std::vector arr); From 387759d80a8c6aac588b264c0b1ef2c5eba40910 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 23 Mar 2024 12:40:50 +0000 Subject: [PATCH 08/26] last change --- task_01/src/test.cpp | 1 - task_01/src/utils.cpp | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/task_01/src/test.cpp b/task_01/src/test.cpp index b1da0e88..9f3a10f3 100644 --- a/task_01/src/test.cpp +++ b/task_01/src/test.cpp @@ -1,4 +1,3 @@ - #include "utils.hpp" #include #include diff --git a/task_01/src/utils.cpp b/task_01/src/utils.cpp index 934e64ea..941715fb 100644 --- a/task_01/src/utils.cpp +++ b/task_01/src/utils.cpp @@ -17,5 +17,5 @@ std::pair Task1(int num, const std::vector arr) { return std::pair{arr[i], arr[j]}; } } - throw std::logic_error(""); + throw std::logic_error("There is no sum of elements equal to number"); } \ No newline at end of file From 34ddb71ed51b5b15506931769523efc221cf5d83 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 23 Mar 2024 12:57:26 +0000 Subject: [PATCH 09/26] kast_changes --- task_01/src/test.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/task_01/src/test.cpp b/task_01/src/test.cpp index 9f3a10f3..92cb6996 100644 --- a/task_01/src/test.cpp +++ b/task_01/src/test.cpp @@ -4,13 +4,19 @@ #include TEST(utils, Simple) { - ASSERT_EQ(Task1(9, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), (std::pair{1, 8})); - ASSERT_EQ(Task1(39, std::vector{1, 2, 4, 5, 6, 9, 10, 35}), (std::pair{4, 35})); - ASSERT_EQ(Task1(14, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), (std::pair{2, 12})); - EXPECT_THROW(Task1(1887, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), std::logic_error); + ASSERT_EQ(Task1(9, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), + (std::pair{1, 8})); + ASSERT_EQ(Task1(39, std::vector{1, 2, 4, 5, 6, 9, 10, 35}), + (std::pair{4, 35})); + ASSERT_EQ(Task1(14, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), + (std::pair{2, 12})); + EXPECT_THROW(Task1(1887, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), + std::logic_error); EXPECT_THROW(Task1(12, std::vector{0, 1, 1, 2, 2}), std::logic_error); - ASSERT_EQ(Task1(1338, std::vector{10, 20, 40, 50, 60, 87, 100, 1278}), (std::pair{60, 1278})); - ASSERT_EQ(Task1(22, std::vector{10, 10, 11, 11, 12, 15}), (std::pair{10, 12})); + ASSERT_EQ(Task1(1338, std::vector{10, 20, 40, 50, 60, 87, 100, 1278}), + (std::pair{60, 1278})); + ASSERT_EQ(Task1(22, std::vector{10, 10, 11, 11, 12, 15}), + (std::pair{10, 12})); EXPECT_THROW(Task1(22, std::vector{11}), WrongVector); EXPECT_THROW(Task1(1233, std::vector{}), WrongVector); } From 7a9375976b408975d922620691a8c0f97c02d5b4 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sun, 24 Mar 2024 21:45:14 +0000 Subject: [PATCH 10/26] part of task 2 --- task_04/src/heap.cpp | 59 ++++++++++++++++++++++++++++++++++++++++++++ task_04/src/heap.hpp | 22 +++++++++++++++++ task_04/src/main.cpp | 1 + task_04/src/test.cpp | 15 ++++++++--- task_05/src/sort.cpp | 25 +++++++++++++++++++ task_05/src/sort.hpp | 7 ++++++ task_05/src/test.cpp | 15 +++++++++-- 7 files changed, 139 insertions(+), 5 deletions(-) create mode 100644 task_04/src/heap.cpp create mode 100644 task_04/src/heap.hpp create mode 100644 task_05/src/sort.cpp create mode 100644 task_05/src/sort.hpp diff --git a/task_04/src/heap.cpp b/task_04/src/heap.cpp new file mode 100644 index 00000000..4ce7d04c --- /dev/null +++ b/task_04/src/heap.cpp @@ -0,0 +1,59 @@ +#include "heap.hpp" +#include +#include + +void Heap::SiftDown(int i) { + while (2 * i + 1 < vec_.size()) { + int left = 2 * i + 1; + int right = 2 * i + 2; + int j = left; + if ((right < vec_.size()) && vec_[right] < vec_[left]) + j = right; + if (vec_[i] <= vec_[j]) + break; + std::swap(vec_[i], vec_[j]); + i = j; + } +} + +void Heap::SiftUp(int i) { + while (vec_[i] < (vec_[(i - 1) / 2])) { + std::swap(vec_[i], vec_[(i - 1) / 2]); + i = (i - 1) / 2; + } +} + +int Heap::Find_Min() { return vec_[0]; } + +int Heap::Extract_Min() { + int min = vec_[0]; + vec_[0] = vec_[vec_.size() - 1]; + vec_.erase(vec_.begin()); + SiftDown(0); + return min; +} + +std::vector Heap::Copy_Heap() { return vec_; } + +void Heap::Insert(int value) { + vec_.push_back(value); + SiftUp(vec_.size() - 1); +} + +void Heap::Build_heap(std::vector vec) { + for (int i = 0; i < vec.size(); ++i) { + Insert(vec[i]); + } +} + +int Find_Minimum(std::vector vec) { + Heap heap; + heap.Build_heap(vec); + return heap.Find_Min(); +} + +std::vector Heap_Ready(std::vector vec) { + Heap heap; + heap.Build_heap(vec); + return heap.Copy_Heap(); +} \ No newline at end of file diff --git a/task_04/src/heap.hpp b/task_04/src/heap.hpp new file mode 100644 index 00000000..2191ddef --- /dev/null +++ b/task_04/src/heap.hpp @@ -0,0 +1,22 @@ +#pragma once + +#include +#include + +class Heap { +public: + void SiftDown(int i); + void SiftUp(int i); + void Insert(int value); + int Find_Min(); + void Build_heap(std::vector vec); + int Extract_Min(); + std::vector Copy_Heap(); + +private: + std::vector vec_; +}; + +int Find_Minimum(std::vector vec); + +std::vector Heap_Ready(std::vector heap); \ No newline at end of file diff --git a/task_04/src/main.cpp b/task_04/src/main.cpp index 0e4393ba..ea6d0016 100644 --- a/task_04/src/main.cpp +++ b/task_04/src/main.cpp @@ -1,3 +1,4 @@ +#include "heap.hpp" #include int main() { return 0; } diff --git a/task_04/src/test.cpp b/task_04/src/test.cpp index 5e11617e..96d4f726 100644 --- a/task_04/src/test.cpp +++ b/task_04/src/test.cpp @@ -1,6 +1,15 @@ - +#include "heap.hpp" #include -TEST(TopologySort, Simple) { - ASSERT_EQ(1, 1); // Stack [] +TEST(heap, Simple) { + ASSERT_EQ(Find_Minimum(std::vector{1, 3, 5, 6, 2, 4}), 1); + ASSERT_EQ(Find_Minimum(std::vector{11, 37, 55, 34, -6, 0, 4}), -6); + ASSERT_EQ(Heap_Ready(std::vector{4, 1, 3, 2, 5}), + (std::vector{1, 2, 3, 4, 5})); + ASSERT_EQ(Heap_Ready(std::vector{3, 1, 5, 6, 2, 4}), + (std::vector{1, 2, 4, 6, 3, 5})); + Heap heap; + heap.Build_heap(std::vector{1, 3, 5, 7, 9, 12, 324, 5, 47, 457, 9467, -4, + 758, -579, -4, 0}); + ASSERT_EQ(heap.Find_Min(), -579); } diff --git a/task_05/src/sort.cpp b/task_05/src/sort.cpp new file mode 100644 index 00000000..7024d8e4 --- /dev/null +++ b/task_05/src/sort.cpp @@ -0,0 +1,25 @@ +#include "sort.hpp" +#include +#include + +int Partition(std::vector &arr, int low, int high) { + int pivot = arr[high]; + int i = low - 1; + for (int j = low; j <= high; ++j) { + if (arr[j] < pivot) { + ++i; + std::swap(arr[i], arr[j]); + } + } + std::swap(arr[i + 1], arr[high]); + return (i + 1); +} + +std::vector Quick_Sort(std::vector &arr, int low, int high) { + if (low < high) { + int m = Partition(arr, low, high); + Quick_Sort(arr, low, m - 1); + Quick_Sort(arr, m + 1, high); + } + return arr; +} \ No newline at end of file diff --git a/task_05/src/sort.hpp b/task_05/src/sort.hpp new file mode 100644 index 00000000..f4ed6f5f --- /dev/null +++ b/task_05/src/sort.hpp @@ -0,0 +1,7 @@ +#pragma once +#include +#include + +int Partition(std::vector &arr, int low, int high); + +std::vector Quick_Sort(std::vector &arr, int low, int high); \ No newline at end of file diff --git a/task_05/src/test.cpp b/task_05/src/test.cpp index 5e11617e..4017df0a 100644 --- a/task_05/src/test.cpp +++ b/task_05/src/test.cpp @@ -1,6 +1,17 @@ +#include "sort.hpp" #include -TEST(TopologySort, Simple) { - ASSERT_EQ(1, 1); // Stack [] +TEST(Quick_Sort, Simple) { + std::vector vec_1{9, 8, 7, 6, 5, 4, 2, 3, 1, 0}; + ASSERT_EQ(Quick_Sort(vec_1, 0, 9), + (std::vector{0, 1, 2, 3, 4, 5, 6, 7, 8, 9})); + std::vector vec_2{10, 90, 30, 80, 60, 50}; + ASSERT_EQ(Quick_Sort(vec_2, 0, 5), + (std::vector{10, 30, 50, 60, 80, 90})); + std::vector vec_3{12, 43, 15, 26, -1233, 346, 1325, + -56, -12, 78, 0, 3345, -34}; + ASSERT_EQ(Quick_Sort(vec_3, 0, 12), + (std::vector{-1233, -56, -34, -12, 0, 12, 15, 26, 43, 78, 346, + 1325, 3345})); } From d36dde4ccaa8f36daea98f446b16d80a8728f701 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Mon, 25 Mar 2024 10:50:27 +0000 Subject: [PATCH 11/26] k_stat --- task_06/src/k_stat.cpp | 28 ++++++++++++++++++++++++++++ task_06/src/k_stat.hpp | 7 +++++++ task_06/src/test.cpp | 11 ++++++++--- 3 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 task_06/src/k_stat.cpp create mode 100644 task_06/src/k_stat.hpp diff --git a/task_06/src/k_stat.cpp b/task_06/src/k_stat.cpp new file mode 100644 index 00000000..1f8feeb7 --- /dev/null +++ b/task_06/src/k_stat.cpp @@ -0,0 +1,28 @@ +#include "k_stat.hpp" +#include +#include + +int Partition(std::vector &vec, int low, int high) { + int pivot = vec[high]; + int i = low - 1; + for (int j = low; j <= high; ++j) { + if (vec[j] < pivot) { + ++i; + std::swap(vec[i], vec[j]); + } + } + std::swap(vec[i + 1], vec[high]); + return (i + 1); +} + +int Quick_sort(std::vector &vec, int low, int high, int k) { + if (low < high) { + int m = Partition(vec, low, high); + if (m == k - 1) { + return k; + } + Quick_sort(vec, low, m - 1, k); + Quick_sort(vec, m + 1, high, k); + } + throw std::logic_error("There is no such element"); +} diff --git a/task_06/src/k_stat.hpp b/task_06/src/k_stat.hpp new file mode 100644 index 00000000..c2b67d40 --- /dev/null +++ b/task_06/src/k_stat.hpp @@ -0,0 +1,7 @@ +#pragma once +#include +#include + +int Quick_Sort(std::vector &vec, int low, int high, int k); + +int Partition(std::vector &vec, int low, int high); \ No newline at end of file diff --git a/task_06/src/test.cpp b/task_06/src/test.cpp index 5e11617e..adb72005 100644 --- a/task_06/src/test.cpp +++ b/task_06/src/test.cpp @@ -1,6 +1,11 @@ - +#include "k_stat.hpp" #include +#include -TEST(TopologySort, Simple) { - ASSERT_EQ(1, 1); // Stack [] +TEST(k_stat, Simple) { + std::vector vec{14, -1, 5, 21, 6, -3, 7, 93, 9, 0, 84}; + ASSERT_EQ(Quick_Sort(vec, 0, 10, 8), 14); + ASSERT_EQ(Quick_Sort(vec, 0, 10, 3), 0); + ASSERT_EQ(Quick_Sort(vec, 0, 10, 10), 84); + EXPECT_THROW(Quick_Sort(vec, 0, 10, 13), std::logic_error); } From 81911244c767b52ebb0b9393e38ab2f6e55d9486 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Mon, 25 Mar 2024 17:52:32 +0000 Subject: [PATCH 12/26] commit --- task_06/src/k_stat.cpp | 47 +++++++++++++++++++++++++++--------------- task_06/src/k_stat.hpp | 4 ++-- task_06/src/test.cpp | 10 ++++----- 3 files changed, 37 insertions(+), 24 deletions(-) diff --git a/task_06/src/k_stat.cpp b/task_06/src/k_stat.cpp index 1f8feeb7..340a6fa6 100644 --- a/task_06/src/k_stat.cpp +++ b/task_06/src/k_stat.cpp @@ -2,27 +2,40 @@ #include #include -int Partition(std::vector &vec, int low, int high) { - int pivot = vec[high]; - int i = low - 1; - for (int j = low; j <= high; ++j) { - if (vec[j] < pivot) { - ++i; - std::swap(vec[i], vec[j]); +int Partition(std::vector &vec, int l, int r) { + int piv = vec[(l + r) / 2]; + int i = l; + int j = r; + while (i <= j) { + while (vec[i] < piv) { + i++; } + while (vec[j] > piv) { + j--; + } + if (i >= j) { + break; + } + std::swap(vec[i++], vec[j--]); } - std::swap(vec[i + 1], vec[high]); - return (i + 1); + return j; } -int Quick_sort(std::vector &vec, int low, int high, int k) { - if (low < high) { - int m = Partition(vec, low, high); - if (m == k - 1) { - return k; +int findOrderStatistic(std::vector &vec, int k) { + int left = 0; + int right = int(vec.size() - 1); + while (left < vec.size()) { + int mid = Partition(vec, left, right); + + if (mid == k) { + return vec[mid]; + } + + else if (k < mid) { + right = mid; + } else { + left = mid + 1; } - Quick_sort(vec, low, m - 1, k); - Quick_sort(vec, m + 1, high, k); } - throw std::logic_error("There is no such element"); + throw std::logic_error("Wrong k order statistic"); } diff --git a/task_06/src/k_stat.hpp b/task_06/src/k_stat.hpp index c2b67d40..ada019c1 100644 --- a/task_06/src/k_stat.hpp +++ b/task_06/src/k_stat.hpp @@ -2,6 +2,6 @@ #include #include -int Quick_Sort(std::vector &vec, int low, int high, int k); +int Partition(std::vector &vec, int l, int r); -int Partition(std::vector &vec, int low, int high); \ No newline at end of file +int Find_Order_Statistic(std::vector &vec, int k); \ No newline at end of file diff --git a/task_06/src/test.cpp b/task_06/src/test.cpp index adb72005..cc04baf2 100644 --- a/task_06/src/test.cpp +++ b/task_06/src/test.cpp @@ -3,9 +3,9 @@ #include TEST(k_stat, Simple) { - std::vector vec{14, -1, 5, 21, 6, -3, 7, 93, 9, 0, 84}; - ASSERT_EQ(Quick_Sort(vec, 0, 10, 8), 14); - ASSERT_EQ(Quick_Sort(vec, 0, 10, 3), 0); - ASSERT_EQ(Quick_Sort(vec, 0, 10, 10), 84); - EXPECT_THROW(Quick_Sort(vec, 0, 10, 13), std::logic_error); + std::vector vec_1{14, -1, 5, 21, 6, -3, 7, 93, 9, 0, 84}; + ASSERT_EQ(Find_Order_Statistic(vec_1, 8), 21); + /*ASSERT_EQ(Find_Order_Statistic(vec, 3), 0); + ASSERT_EQ(Find_Order_Statistic(vec, 10), 84); + EXPECT_THROW(Find_Order_Statistic(vec, 13), std::logic_error);*/ } From f2b00ce412354590ce0e9117f260180971eea70e Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Mon, 25 Mar 2024 17:59:54 +0000 Subject: [PATCH 13/26] commit --- task_06/src/k_stat.cpp | 2 +- task_06/src/test.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/task_06/src/k_stat.cpp b/task_06/src/k_stat.cpp index 340a6fa6..31557c4a 100644 --- a/task_06/src/k_stat.cpp +++ b/task_06/src/k_stat.cpp @@ -21,7 +21,7 @@ int Partition(std::vector &vec, int l, int r) { return j; } -int findOrderStatistic(std::vector &vec, int k) { +int Find_Order_Statistic(std::vector &vec, int k) { int left = 0; int right = int(vec.size() - 1); while (left < vec.size()) { diff --git a/task_06/src/test.cpp b/task_06/src/test.cpp index cc04baf2..c7ec7f7e 100644 --- a/task_06/src/test.cpp +++ b/task_06/src/test.cpp @@ -5,7 +5,7 @@ TEST(k_stat, Simple) { std::vector vec_1{14, -1, 5, 21, 6, -3, 7, 93, 9, 0, 84}; ASSERT_EQ(Find_Order_Statistic(vec_1, 8), 21); - /*ASSERT_EQ(Find_Order_Statistic(vec, 3), 0); - ASSERT_EQ(Find_Order_Statistic(vec, 10), 84); - EXPECT_THROW(Find_Order_Statistic(vec, 13), std::logic_error);*/ + ASSERT_EQ(Find_Order_Statistic(vec_1, 3), 5); + ASSERT_EQ(Find_Order_Statistic(vec_1, 10), 93); + EXPECT_THROW(Find_Order_Statistic(vec_1, 13), std::logic_error); } From 3e84ba71456d68837f7ff104bb1c637c06ae1da8 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Mon, 25 Mar 2024 19:17:40 +0000 Subject: [PATCH 14/26] task_3 --- task_03/src/test.cpp | 10 ++++++++- task_03/src/topology_sort.cpp | 38 +++++++++++++++++++++++++++++++++++ task_03/src/topology_sort.hpp | 9 +++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/task_03/src/test.cpp b/task_03/src/test.cpp index ef5a86ae..59a35608 100644 --- a/task_03/src/test.cpp +++ b/task_03/src/test.cpp @@ -4,5 +4,13 @@ #include "topology_sort.hpp" TEST(TopologySort, Simple) { - ASSERT_EQ(1, 1); // Stack [] + ASSERT_EQ( + Rise_Temperature(std::vector{12, 14, 2, 12, 11, 10, 0, 5, 3, 20, 4}), + (std::vector{1, 8, 1, 6, 5, 4, 1, 2, 1, 0, 0})); + ASSERT_EQ( + Rise_Temperature(std::vector{11, -2, 3, 1, 5, 2, 6, 3, 7, 84, 4}), + (std::vector{9, 1, 2, 1, 2, 1, 2, 1, 1, 0, 0})); + ASSERT_EQ(Rise_Temperature(std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}), + (std::vector{1, 1, 1, 1, 1, 1, 1, 1, 0})); + EXPECT_THROW(Rise_Temperature(std::vector{}), WrongVector); } diff --git a/task_03/src/topology_sort.cpp b/task_03/src/topology_sort.cpp index e53f670c..e5cdd927 100644 --- a/task_03/src/topology_sort.cpp +++ b/task_03/src/topology_sort.cpp @@ -1 +1,39 @@ #include "topology_sort.hpp" +#include +#include +#include + +class Day { +public: + int number_of_day; + int temperature; + Day(int number_of_day, int temperature) { + this->number_of_day = number_of_day; + this->temperature = temperature; + } +}; + +std::vector Rise_Temperature(std::vector vec) { + int size = int(vec.size()); + if (size == 0) { + throw WrongVector("Wrong vector is too small"); + } + std::stack stack_days; + std::vector answer_vec(size, 0); + stack_days.emplace(0, vec[0]); + int i = 1; + while (i < size) { + while (!stack_days.empty()) { + if (vec[i] > stack_days.top().temperature) { + answer_vec[stack_days.top().number_of_day] = + i - stack_days.top().number_of_day; + stack_days.pop(); + } else if (vec[i] < stack_days.top().temperature) { + break; + } + } + stack_days.emplace(i, vec[i]); + ++i; + } + return answer_vec; +} \ No newline at end of file diff --git a/task_03/src/topology_sort.hpp b/task_03/src/topology_sort.hpp index 6f70f09b..d0375ab7 100644 --- a/task_03/src/topology_sort.hpp +++ b/task_03/src/topology_sort.hpp @@ -1 +1,10 @@ #pragma once +#include +#include + +class WrongVector : public std::runtime_error { + using std::runtime_error::runtime_error; +}; + +std::vector Rise_Temperature(std::vector vec); + From 46fb9cf16dba3419e28b5413bfd83c12ecc9de11 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 30 Mar 2024 10:22:40 +0000 Subject: [PATCH 15/26] last changes --- task_01/src/test.cpp | 21 ++++++++++++--------- task_01/src/utils.cpp | 2 +- task_01/src/utils.hpp | 2 +- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/task_01/src/test.cpp b/task_01/src/test.cpp index 92cb6996..3f317c74 100644 --- a/task_01/src/test.cpp +++ b/task_01/src/test.cpp @@ -4,19 +4,22 @@ #include TEST(utils, Simple) { - ASSERT_EQ(Task1(9, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), + ASSERT_EQ(Sum_Of_Elements(9, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), (std::pair{1, 8})); - ASSERT_EQ(Task1(39, std::vector{1, 2, 4, 5, 6, 9, 10, 35}), + ASSERT_EQ(Sum_Of_Elements(39, std::vector{1, 2, 4, 5, 6, 9, 10, 35}), (std::pair{4, 35})); - ASSERT_EQ(Task1(14, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), + ASSERT_EQ(Sum_Of_Elements(14, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), (std::pair{2, 12})); - EXPECT_THROW(Task1(1887, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), + EXPECT_THROW( + Sum_Of_Elements(187, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), + std::logic_error); + EXPECT_THROW(Sum_Of_Elements(12, std::vector{0, 1, 1, 2, 2}), std::logic_error); - EXPECT_THROW(Task1(12, std::vector{0, 1, 1, 2, 2}), std::logic_error); - ASSERT_EQ(Task1(1338, std::vector{10, 20, 40, 50, 60, 87, 100, 1278}), + ASSERT_EQ(Sum_Of_Elements( + 1338, std::vector{10, 20, 40, 50, 60, 87, 100, 1278}), (std::pair{60, 1278})); - ASSERT_EQ(Task1(22, std::vector{10, 10, 11, 11, 12, 15}), + ASSERT_EQ(Sum_Of_Elements(22, std::vector{10, 10, 11, 11, 12, 15}), (std::pair{10, 12})); - EXPECT_THROW(Task1(22, std::vector{11}), WrongVector); - EXPECT_THROW(Task1(1233, std::vector{}), WrongVector); + EXPECT_THROW(Sum_Of_Elements(22, std::vector{11}), WrongVector); + EXPECT_THROW(Sum_Of_Elements(1233, std::vector{}), WrongVector); } diff --git a/task_01/src/utils.cpp b/task_01/src/utils.cpp index 941715fb..f089478d 100644 --- a/task_01/src/utils.cpp +++ b/task_01/src/utils.cpp @@ -3,7 +3,7 @@ #include #include -std::pair Task1(int num, const std::vector arr) { +std::pair Sum_Of_Elements(int num, const std::vector arr) { if (arr.size() < 2) { throw WrongVector("Vector is too small"); } diff --git a/task_01/src/utils.hpp b/task_01/src/utils.hpp index ead85070..70165061 100644 --- a/task_01/src/utils.hpp +++ b/task_01/src/utils.hpp @@ -6,4 +6,4 @@ class WrongVector : public std::runtime_error { using std::runtime_error::runtime_error; }; -std::pair Task1(int num, const std::vector arr); +std::pair Sum_Of_Elements(int num, const std::vector arr); From 1e221fc3190f5b001ecbc2394e549db3e0a2408c Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 30 Mar 2024 10:48:40 +0000 Subject: [PATCH 16/26] last changes --- task_01/src/test.cpp | 18 +++++++++--------- task_01/src/utils.cpp | 2 +- task_01/src/utils.hpp | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/task_01/src/test.cpp b/task_01/src/test.cpp index 3f317c74..c01ea493 100644 --- a/task_01/src/test.cpp +++ b/task_01/src/test.cpp @@ -4,22 +4,22 @@ #include TEST(utils, Simple) { - ASSERT_EQ(Sum_Of_Elements(9, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), + ASSERT_EQ(SumOfElements(9, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), (std::pair{1, 8})); - ASSERT_EQ(Sum_Of_Elements(39, std::vector{1, 2, 4, 5, 6, 9, 10, 35}), + ASSERT_EQ(SumOfElements(39, std::vector{1, 2, 4, 5, 6, 9, 10, 35}), (std::pair{4, 35})); - ASSERT_EQ(Sum_Of_Elements(14, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), + ASSERT_EQ(SumOfElements(14, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), (std::pair{2, 12})); EXPECT_THROW( - Sum_Of_Elements(187, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), + SumOfElements(187, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), std::logic_error); - EXPECT_THROW(Sum_Of_Elements(12, std::vector{0, 1, 1, 2, 2}), + EXPECT_THROW(SumOfElements(12, std::vector{0, 1, 1, 2, 2}), std::logic_error); - ASSERT_EQ(Sum_Of_Elements( + ASSERT_EQ(SumOfElements( 1338, std::vector{10, 20, 40, 50, 60, 87, 100, 1278}), (std::pair{60, 1278})); - ASSERT_EQ(Sum_Of_Elements(22, std::vector{10, 10, 11, 11, 12, 15}), + ASSERT_EQ(SumOfElements(22, std::vector{10, 10, 11, 11, 12, 15}), (std::pair{10, 12})); - EXPECT_THROW(Sum_Of_Elements(22, std::vector{11}), WrongVector); - EXPECT_THROW(Sum_Of_Elements(1233, std::vector{}), WrongVector); + EXPECT_THROW(SumOfElements(22, std::vector{11}), WrongVector); + EXPECT_THROW(SumOfElements(1233, std::vector{}), WrongVector); } diff --git a/task_01/src/utils.cpp b/task_01/src/utils.cpp index f089478d..e9343911 100644 --- a/task_01/src/utils.cpp +++ b/task_01/src/utils.cpp @@ -3,7 +3,7 @@ #include #include -std::pair Sum_Of_Elements(int num, const std::vector arr) { +std::pair SumOfElements(int num, const std::vector arr) { if (arr.size() < 2) { throw WrongVector("Vector is too small"); } diff --git a/task_01/src/utils.hpp b/task_01/src/utils.hpp index 70165061..eebc80c8 100644 --- a/task_01/src/utils.hpp +++ b/task_01/src/utils.hpp @@ -6,4 +6,4 @@ class WrongVector : public std::runtime_error { using std::runtime_error::runtime_error; }; -std::pair Sum_Of_Elements(int num, const std::vector arr); +std::pair SumOfElements(int num, const std::vector arr); From 000fc927470cb07f8efda2c7a68d1a37a623176f Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 30 Mar 2024 14:43:28 +0000 Subject: [PATCH 17/26] task02 was done --- task_02/src/stack.cpp | 52 ++++++++++++++++++++++++++++++++++--------- task_02/src/stack.hpp | 23 +++++++++++-------- task_02/src/test.cpp | 48 +++++++++++++++++++-------------------- 3 files changed, 79 insertions(+), 44 deletions(-) diff --git a/task_02/src/stack.cpp b/task_02/src/stack.cpp index 8ca89902..cc43e5dc 100644 --- a/task_02/src/stack.cpp +++ b/task_02/src/stack.cpp @@ -1,21 +1,51 @@ #include "stack.hpp" +#include +#include -#include - -void Stack::Push(int value) { data_.push(value); } +void Stack::Push(int value) { + std::shared_ptr p(new Node(value)); + if (top == nullptr) { + top = p; + } + if (top != nullptr) { + p->next = top; + } + top = p; +} int Stack::Pop() { - auto result = data_.top(); - data_.pop(); - return result; + if (top == nullptr) { + throw std::logic_error("Stack Underflow"); + } + int val = top->value; + top = top->next; + return val; } -void MinStack::Push(int value) { data_.push_back(value); } +void MinStack::Push(int value) { + if (st1_.top == nullptr) { + st1_.Push(value); + st2_.Push(value); + return; + } + + if (st1_.top->value > value) { + st2_.Push(value); + } else { + st1_.Push(value); + st2_.Push(st2_.top->value); + } +} int MinStack::Pop() { - auto result = data_.back(); - data_.pop_back(); - return result; + if (st1_.top == nullptr) { + throw std::logic_error("Stack Underflow"); + } + + int val = st1_.top->value; + st1_.top = st1_.top->next; + st2_.top = st2_.top->next; + return val; } -int MinStack::GetMin() { return *std::min_element(data_.begin(), data_.end()); } \ No newline at end of file +int MinStack::GetMin() { return st2_.top->value; } diff --git a/task_02/src/stack.hpp b/task_02/src/stack.hpp index 138ec40f..e85f6185 100644 --- a/task_02/src/stack.hpp +++ b/task_02/src/stack.hpp @@ -1,23 +1,28 @@ #pragma once +#include +#include -#include -#include +struct Node { + int value; + std::shared_ptr next; + Node(int value) : value(value) {} +}; class Stack { - public: +public: + Stack() { top = nullptr; } void Push(int value); int Pop(); - - private: - std::stack data_; + std::shared_ptr top; }; class MinStack { - public: +public: void Push(int value); int Pop(); int GetMin(); - private: - std::vector data_; +private: + Stack st1_; + Stack st2_; }; diff --git a/task_02/src/test.cpp b/task_02/src/test.cpp index 54e7ce90..e0544496 100644 --- a/task_02/src/test.cpp +++ b/task_02/src/test.cpp @@ -7,36 +7,36 @@ TEST(StackTest, Simple) { Stack stack; - stack.Push(1); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] - stack.Push(1); // Stack [1] - stack.Push(2); // Stack [1, 2] - ASSERT_EQ(stack.Pop(), 2); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] - stack.Push(1); // Stack [1] - stack.Push(2); // Stack [1, 2] - ASSERT_EQ(stack.Pop(), 2); // Stack [1] - stack.Push(3); // Stack [1, 3] - ASSERT_EQ(stack.Pop(), 3); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + stack.Push(2); // Stack [1, 2] + ASSERT_EQ(stack.Pop(), 2); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + stack.Push(2); // Stack [1, 2] + ASSERT_EQ(stack.Pop(), 2); // Stack [1] + stack.Push(3); // Stack [1, 3] + ASSERT_EQ(stack.Pop(), 3); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] } TEST(MinStackTest, Simple) { MinStack stack; - stack.Push(1); // Stack [1] + stack.Push(1); // Stack [1] ASSERT_EQ(stack.GetMin(), 1); - ASSERT_EQ(stack.Pop(), 1); // Stack [] - stack.Push(1); // Stack [1] - stack.Push(2); // Stack [1, 2] + ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + stack.Push(2); // Stack [1, 2] ASSERT_EQ(stack.GetMin(), 1); - ASSERT_EQ(stack.Pop(), 2); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] - stack.Push(1); // Stack [1] - stack.Push(2); // Stack [1, 2] + ASSERT_EQ(stack.Pop(), 2); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + stack.Push(2); // Stack [1, 2] ASSERT_EQ(stack.GetMin(), 1); - ASSERT_EQ(stack.Pop(), 2); // Stack [1] - stack.Push(3); // Stack [1, 3] + ASSERT_EQ(stack.Pop(), 2); // Stack [1] + stack.Push(3); // Stack [1, 3] ASSERT_EQ(stack.GetMin(), 1); - ASSERT_EQ(stack.Pop(), 3); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] + ASSERT_EQ(stack.Pop(), 3); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] } \ No newline at end of file From 18b4f4033bcd0b35c7357e1fc55e2796c6b965a8 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Mon, 1 Apr 2024 13:23:21 +0000 Subject: [PATCH 18/26] tasks 1-6 are ready --- task_03/src/test.cpp | 7 +++++++ task_04/src/test.cpp | 4 ++++ task_05/src/test.cpp | 18 ++++++++++++------ task_06/src/k_stat.cpp | 5 +++-- task_06/src/k_stat.hpp | 2 +- task_06/src/test.cpp | 18 +++++++++++++----- task_08/src/hash_table.cpp | 1 + task_08/src/hash_table.hpp | 22 ++++++++++++++++++++++ 8 files changed, 63 insertions(+), 14 deletions(-) create mode 100644 task_08/src/hash_table.cpp create mode 100644 task_08/src/hash_table.hpp diff --git a/task_03/src/test.cpp b/task_03/src/test.cpp index 59a35608..90267189 100644 --- a/task_03/src/test.cpp +++ b/task_03/src/test.cpp @@ -4,6 +4,13 @@ #include "topology_sort.hpp" TEST(TopologySort, Simple) { + ASSERT_EQ(Rise_Temperature(std::vector{1, 2, 3, 4, 5}), + (std::vector{1, 1, 1, 1, 0})); + ASSERT_EQ(Rise_Temperature(std::vector{5, 4, 3, 2, 1}), + (std::vector{0, 0, 0, 0, 0})); + ASSERT_EQ( + Rise_Temperature(std::vector{-3, 0, 1, 23, 4, 5, 12, 1, 2, 1, 3}), + (std::vector{1, 1, 1, 0, 1, 1, 0, 1, 2, 1, 0})); ASSERT_EQ( Rise_Temperature(std::vector{12, 14, 2, 12, 11, 10, 0, 5, 3, 20, 4}), (std::vector{1, 8, 1, 6, 5, 4, 1, 2, 1, 0, 0})); diff --git a/task_04/src/test.cpp b/task_04/src/test.cpp index 96d4f726..64befa70 100644 --- a/task_04/src/test.cpp +++ b/task_04/src/test.cpp @@ -12,4 +12,8 @@ TEST(heap, Simple) { heap.Build_heap(std::vector{1, 3, 5, 7, 9, 12, 324, 5, 47, 457, 9467, -4, 758, -579, -4, 0}); ASSERT_EQ(heap.Find_Min(), -579); + heap.Insert(23); + heap.Insert(-1000); + ASSERT_EQ(heap.Extract_Min(), -1000); + ASSERT_EQ(heap.Find_Min(), -579); } diff --git a/task_05/src/test.cpp b/task_05/src/test.cpp index 4017df0a..ad869d5b 100644 --- a/task_05/src/test.cpp +++ b/task_05/src/test.cpp @@ -3,15 +3,21 @@ #include TEST(Quick_Sort, Simple) { - std::vector vec_1{9, 8, 7, 6, 5, 4, 2, 3, 1, 0}; - ASSERT_EQ(Quick_Sort(vec_1, 0, 9), + std::vector vec1{9, 8, 7, 6, 5, 4, 2, 3, 1, 0}; + ASSERT_EQ(Quick_Sort(vec1, 0, 9), (std::vector{0, 1, 2, 3, 4, 5, 6, 7, 8, 9})); - std::vector vec_2{10, 90, 30, 80, 60, 50}; - ASSERT_EQ(Quick_Sort(vec_2, 0, 5), + std::vector vec2{10, 90, 30, 80, 60, 50}; + ASSERT_EQ(Quick_Sort(vec2, 0, 5), (std::vector{10, 30, 50, 60, 80, 90})); - std::vector vec_3{12, 43, 15, 26, -1233, 346, 1325, + std::vector vec3{12, 43, 15, 26, -1233, 346, 1325, -56, -12, 78, 0, 3345, -34}; - ASSERT_EQ(Quick_Sort(vec_3, 0, 12), + ASSERT_EQ(Quick_Sort(vec3, 0, 12), (std::vector{-1233, -56, -34, -12, 0, 12, 15, 26, 43, 78, 346, 1325, 3345})); + vec3.push_back(-10); + vec3.push_back(1000); + vec3.push_back(5); + ASSERT_EQ(Quick_Sort(vec3, 0, 15), + (std::vector{-1233, -56, -34, -12, -10, 0, 5, 12, 15, 26, 43, + 78, 346, 1000, 1325, 3345})); } diff --git a/task_06/src/k_stat.cpp b/task_06/src/k_stat.cpp index 31557c4a..2cd66971 100644 --- a/task_06/src/k_stat.cpp +++ b/task_06/src/k_stat.cpp @@ -3,7 +3,7 @@ #include int Partition(std::vector &vec, int l, int r) { - int piv = vec[(l + r) / 2]; + int piv = vec[rand() % vec.size()]; int i = l; int j = r; while (i <= j) { @@ -21,7 +21,7 @@ int Partition(std::vector &vec, int l, int r) { return j; } -int Find_Order_Statistic(std::vector &vec, int k) { +int FindOrderStatistic(std::vector &vec, int k) { int left = 0; int right = int(vec.size() - 1); while (left < vec.size()) { @@ -39,3 +39,4 @@ int Find_Order_Statistic(std::vector &vec, int k) { } throw std::logic_error("Wrong k order statistic"); } + diff --git a/task_06/src/k_stat.hpp b/task_06/src/k_stat.hpp index ada019c1..4a90dcc7 100644 --- a/task_06/src/k_stat.hpp +++ b/task_06/src/k_stat.hpp @@ -4,4 +4,4 @@ int Partition(std::vector &vec, int l, int r); -int Find_Order_Statistic(std::vector &vec, int k); \ No newline at end of file +int FindOrderStatistic(std::vector &vec, int k); \ No newline at end of file diff --git a/task_06/src/test.cpp b/task_06/src/test.cpp index c7ec7f7e..518cfb7a 100644 --- a/task_06/src/test.cpp +++ b/task_06/src/test.cpp @@ -3,9 +3,17 @@ #include TEST(k_stat, Simple) { - std::vector vec_1{14, -1, 5, 21, 6, -3, 7, 93, 9, 0, 84}; - ASSERT_EQ(Find_Order_Statistic(vec_1, 8), 21); - ASSERT_EQ(Find_Order_Statistic(vec_1, 3), 5); - ASSERT_EQ(Find_Order_Statistic(vec_1, 10), 93); - EXPECT_THROW(Find_Order_Statistic(vec_1, 13), std::logic_error); + std::vector vec1{14, -1, 5, 21, 6, -3, 7, 93, 9, 0, 84}; + ASSERT_EQ(FindOrderStatistic(vec1, 8), 21); + ASSERT_EQ(FindOrderStatistic(vec1, 3), 5); + ASSERT_EQ(FindOrderStatistic(vec1, 10), 93); + EXPECT_THROW(FindOrderStatistic(vec1, 13), std::logic_error); + std::vector vec2{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + ASSERT_EQ(FindOrderStatistic(vec2, 4), 5); + vec2.pop_back(); + vec2.pop_back(); + vec2.push_back(-12); + vec2.push_back(100); + vec2.push_back(134); + ASSERT_EQ(FindOrderStatistic(vec2, 9), 100); } diff --git a/task_08/src/hash_table.cpp b/task_08/src/hash_table.cpp new file mode 100644 index 00000000..d65b8727 --- /dev/null +++ b/task_08/src/hash_table.cpp @@ -0,0 +1 @@ +#include "hash_table.hpp" diff --git a/task_08/src/hash_table.hpp b/task_08/src/hash_table.hpp new file mode 100644 index 00000000..e318d885 --- /dev/null +++ b/task_08/src/hash_table.hpp @@ -0,0 +1,22 @@ +// #pragma once +// #include +// #include +// #include +// #include + +// template class HashTable { +// public: +// void Insert(K key, V value); +// void Delete(K key); +// bool Contains(K key); + +// private: +// size_t size; +// std::vector> H_Table(auto size); +// void ReHash(); +// }; + +// template void HashTable::Insert(K key, V value) { +// size_t hash = std::hash(key) % size; +// H_Table[hash].push_back(key, value); +// } \ No newline at end of file From ee7404133713f52709860ee3e2b354e51966d9b4 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 13 Apr 2024 08:59:05 +0000 Subject: [PATCH 19/26] fix format --- task_01/src/test.cpp | 15 ++++++++------- task_09/src/money.cpp | 13 +++++++++++++ task_09/src/money.hpp | 4 ++++ 3 files changed, 25 insertions(+), 7 deletions(-) create mode 100644 task_09/src/money.cpp create mode 100644 task_09/src/money.hpp diff --git a/task_01/src/test.cpp b/task_01/src/test.cpp index c01ea493..d5bdabb3 100644 --- a/task_01/src/test.cpp +++ b/task_01/src/test.cpp @@ -1,8 +1,10 @@ -#include "utils.hpp" #include + #include #include +#include "utils.hpp" + TEST(utils, Simple) { ASSERT_EQ(SumOfElements(9, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), (std::pair{1, 8})); @@ -10,14 +12,13 @@ TEST(utils, Simple) { (std::pair{4, 35})); ASSERT_EQ(SumOfElements(14, std::vector{1, 2, 4, 5, 6, 8, 10, 12}), (std::pair{2, 12})); - EXPECT_THROW( - SumOfElements(187, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), - std::logic_error); + EXPECT_THROW(SumOfElements(187, std::vector{1, 2, 4, 6, 8, 10, 12, 15}), + std::logic_error); EXPECT_THROW(SumOfElements(12, std::vector{0, 1, 1, 2, 2}), std::logic_error); - ASSERT_EQ(SumOfElements( - 1338, std::vector{10, 20, 40, 50, 60, 87, 100, 1278}), - (std::pair{60, 1278})); + ASSERT_EQ( + SumOfElements(1338, std::vector{10, 20, 40, 50, 60, 87, 100, 1278}), + (std::pair{60, 1278})); ASSERT_EQ(SumOfElements(22, std::vector{10, 10, 11, 11, 12, 15}), (std::pair{10, 12})); EXPECT_THROW(SumOfElements(22, std::vector{11}), WrongVector); diff --git a/task_09/src/money.cpp b/task_09/src/money.cpp new file mode 100644 index 00000000..4b6ce5f4 --- /dev/null +++ b/task_09/src/money.cpp @@ -0,0 +1,13 @@ +#include "money.hpp" + +int solve(std::vector &vec, int number){ + std::vectortable(number, 1e9); + for(int i = 0; i < number; i++){ + for(int j = 0; j < vec.size(); ++j){ + if(vec[j] <= i){ + table[i] = std::min(table[i], 1 + table[i-j]); + } + } + } + return table[number - 1]; +} \ No newline at end of file diff --git a/task_09/src/money.hpp b/task_09/src/money.hpp new file mode 100644 index 00000000..5192069f --- /dev/null +++ b/task_09/src/money.hpp @@ -0,0 +1,4 @@ +#pragma once +#include + +int solve(std::vector &vec, int number); From 646a630d42d62d880c76b15b5fa30e1f9cad94a9 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 13 Apr 2024 09:01:44 +0000 Subject: [PATCH 20/26] revert task 3 --- task_03/src/test.cpp | 17 +--------------- task_03/src/topology_sort.cpp | 38 ----------------------------------- task_03/src/topology_sort.hpp | 9 --------- 3 files changed, 1 insertion(+), 63 deletions(-) diff --git a/task_03/src/test.cpp b/task_03/src/test.cpp index 90267189..ef5a86ae 100644 --- a/task_03/src/test.cpp +++ b/task_03/src/test.cpp @@ -4,20 +4,5 @@ #include "topology_sort.hpp" TEST(TopologySort, Simple) { - ASSERT_EQ(Rise_Temperature(std::vector{1, 2, 3, 4, 5}), - (std::vector{1, 1, 1, 1, 0})); - ASSERT_EQ(Rise_Temperature(std::vector{5, 4, 3, 2, 1}), - (std::vector{0, 0, 0, 0, 0})); - ASSERT_EQ( - Rise_Temperature(std::vector{-3, 0, 1, 23, 4, 5, 12, 1, 2, 1, 3}), - (std::vector{1, 1, 1, 0, 1, 1, 0, 1, 2, 1, 0})); - ASSERT_EQ( - Rise_Temperature(std::vector{12, 14, 2, 12, 11, 10, 0, 5, 3, 20, 4}), - (std::vector{1, 8, 1, 6, 5, 4, 1, 2, 1, 0, 0})); - ASSERT_EQ( - Rise_Temperature(std::vector{11, -2, 3, 1, 5, 2, 6, 3, 7, 84, 4}), - (std::vector{9, 1, 2, 1, 2, 1, 2, 1, 1, 0, 0})); - ASSERT_EQ(Rise_Temperature(std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}), - (std::vector{1, 1, 1, 1, 1, 1, 1, 1, 0})); - EXPECT_THROW(Rise_Temperature(std::vector{}), WrongVector); + ASSERT_EQ(1, 1); // Stack [] } diff --git a/task_03/src/topology_sort.cpp b/task_03/src/topology_sort.cpp index e5cdd927..e53f670c 100644 --- a/task_03/src/topology_sort.cpp +++ b/task_03/src/topology_sort.cpp @@ -1,39 +1 @@ #include "topology_sort.hpp" -#include -#include -#include - -class Day { -public: - int number_of_day; - int temperature; - Day(int number_of_day, int temperature) { - this->number_of_day = number_of_day; - this->temperature = temperature; - } -}; - -std::vector Rise_Temperature(std::vector vec) { - int size = int(vec.size()); - if (size == 0) { - throw WrongVector("Wrong vector is too small"); - } - std::stack stack_days; - std::vector answer_vec(size, 0); - stack_days.emplace(0, vec[0]); - int i = 1; - while (i < size) { - while (!stack_days.empty()) { - if (vec[i] > stack_days.top().temperature) { - answer_vec[stack_days.top().number_of_day] = - i - stack_days.top().number_of_day; - stack_days.pop(); - } else if (vec[i] < stack_days.top().temperature) { - break; - } - } - stack_days.emplace(i, vec[i]); - ++i; - } - return answer_vec; -} \ No newline at end of file diff --git a/task_03/src/topology_sort.hpp b/task_03/src/topology_sort.hpp index d0375ab7..6f70f09b 100644 --- a/task_03/src/topology_sort.hpp +++ b/task_03/src/topology_sort.hpp @@ -1,10 +1 @@ #pragma once -#include -#include - -class WrongVector : public std::runtime_error { - using std::runtime_error::runtime_error; -}; - -std::vector Rise_Temperature(std::vector vec); - From 03f5e9a3be543bfea05ed534478d1a1fd4239ec7 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 13 Apr 2024 09:16:57 +0000 Subject: [PATCH 21/26] revert other --- task_02/src/stack.cpp | 52 +++++++++---------------------------------- task_02/src/stack.hpp | 23 ++++++++----------- task_02/src/test.cpp | 48 +++++++++++++++++++-------------------- task_04/src/main.cpp | 1 - task_04/src/test.cpp | 19 +++------------- task_05/src/test.cpp | 21 ++--------------- task_06/src/test.cpp | 19 +++------------- 7 files changed, 52 insertions(+), 131 deletions(-) diff --git a/task_02/src/stack.cpp b/task_02/src/stack.cpp index cc43e5dc..8ca89902 100644 --- a/task_02/src/stack.cpp +++ b/task_02/src/stack.cpp @@ -1,51 +1,21 @@ #include "stack.hpp" -#include -#include -void Stack::Push(int value) { - std::shared_ptr p(new Node(value)); - if (top == nullptr) { - top = p; - } - if (top != nullptr) { - p->next = top; - } - top = p; -} +#include + +void Stack::Push(int value) { data_.push(value); } int Stack::Pop() { - if (top == nullptr) { - throw std::logic_error("Stack Underflow"); - } - int val = top->value; - top = top->next; - return val; + auto result = data_.top(); + data_.pop(); + return result; } -void MinStack::Push(int value) { - if (st1_.top == nullptr) { - st1_.Push(value); - st2_.Push(value); - return; - } - - if (st1_.top->value > value) { - st2_.Push(value); - } else { - st1_.Push(value); - st2_.Push(st2_.top->value); - } -} +void MinStack::Push(int value) { data_.push_back(value); } int MinStack::Pop() { - if (st1_.top == nullptr) { - throw std::logic_error("Stack Underflow"); - } - - int val = st1_.top->value; - st1_.top = st1_.top->next; - st2_.top = st2_.top->next; - return val; + auto result = data_.back(); + data_.pop_back(); + return result; } -int MinStack::GetMin() { return st2_.top->value; } +int MinStack::GetMin() { return *std::min_element(data_.begin(), data_.end()); } \ No newline at end of file diff --git a/task_02/src/stack.hpp b/task_02/src/stack.hpp index e85f6185..138ec40f 100644 --- a/task_02/src/stack.hpp +++ b/task_02/src/stack.hpp @@ -1,28 +1,23 @@ #pragma once -#include -#include -struct Node { - int value; - std::shared_ptr next; - Node(int value) : value(value) {} -}; +#include +#include class Stack { -public: - Stack() { top = nullptr; } + public: void Push(int value); int Pop(); - std::shared_ptr top; + + private: + std::stack data_; }; class MinStack { -public: + public: void Push(int value); int Pop(); int GetMin(); -private: - Stack st1_; - Stack st2_; + private: + std::vector data_; }; diff --git a/task_02/src/test.cpp b/task_02/src/test.cpp index e0544496..54e7ce90 100644 --- a/task_02/src/test.cpp +++ b/task_02/src/test.cpp @@ -7,36 +7,36 @@ TEST(StackTest, Simple) { Stack stack; - stack.Push(1); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] - stack.Push(1); // Stack [1] - stack.Push(2); // Stack [1, 2] - ASSERT_EQ(stack.Pop(), 2); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] - stack.Push(1); // Stack [1] - stack.Push(2); // Stack [1, 2] - ASSERT_EQ(stack.Pop(), 2); // Stack [1] - stack.Push(3); // Stack [1, 3] - ASSERT_EQ(stack.Pop(), 3); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + stack.Push(2); // Stack [1, 2] + ASSERT_EQ(stack.Pop(), 2); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + stack.Push(2); // Stack [1, 2] + ASSERT_EQ(stack.Pop(), 2); // Stack [1] + stack.Push(3); // Stack [1, 3] + ASSERT_EQ(stack.Pop(), 3); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] } TEST(MinStackTest, Simple) { MinStack stack; - stack.Push(1); // Stack [1] + stack.Push(1); // Stack [1] ASSERT_EQ(stack.GetMin(), 1); - ASSERT_EQ(stack.Pop(), 1); // Stack [] - stack.Push(1); // Stack [1] - stack.Push(2); // Stack [1, 2] + ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + stack.Push(2); // Stack [1, 2] ASSERT_EQ(stack.GetMin(), 1); - ASSERT_EQ(stack.Pop(), 2); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] - stack.Push(1); // Stack [1] - stack.Push(2); // Stack [1, 2] + ASSERT_EQ(stack.Pop(), 2); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + stack.Push(2); // Stack [1, 2] ASSERT_EQ(stack.GetMin(), 1); - ASSERT_EQ(stack.Pop(), 2); // Stack [1] - stack.Push(3); // Stack [1, 3] + ASSERT_EQ(stack.Pop(), 2); // Stack [1] + stack.Push(3); // Stack [1, 3] ASSERT_EQ(stack.GetMin(), 1); - ASSERT_EQ(stack.Pop(), 3); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] + ASSERT_EQ(stack.Pop(), 3); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] } \ No newline at end of file diff --git a/task_04/src/main.cpp b/task_04/src/main.cpp index ea6d0016..0e4393ba 100644 --- a/task_04/src/main.cpp +++ b/task_04/src/main.cpp @@ -1,4 +1,3 @@ -#include "heap.hpp" #include int main() { return 0; } diff --git a/task_04/src/test.cpp b/task_04/src/test.cpp index 64befa70..5e11617e 100644 --- a/task_04/src/test.cpp +++ b/task_04/src/test.cpp @@ -1,19 +1,6 @@ -#include "heap.hpp" + #include -TEST(heap, Simple) { - ASSERT_EQ(Find_Minimum(std::vector{1, 3, 5, 6, 2, 4}), 1); - ASSERT_EQ(Find_Minimum(std::vector{11, 37, 55, 34, -6, 0, 4}), -6); - ASSERT_EQ(Heap_Ready(std::vector{4, 1, 3, 2, 5}), - (std::vector{1, 2, 3, 4, 5})); - ASSERT_EQ(Heap_Ready(std::vector{3, 1, 5, 6, 2, 4}), - (std::vector{1, 2, 4, 6, 3, 5})); - Heap heap; - heap.Build_heap(std::vector{1, 3, 5, 7, 9, 12, 324, 5, 47, 457, 9467, -4, - 758, -579, -4, 0}); - ASSERT_EQ(heap.Find_Min(), -579); - heap.Insert(23); - heap.Insert(-1000); - ASSERT_EQ(heap.Extract_Min(), -1000); - ASSERT_EQ(heap.Find_Min(), -579); +TEST(TopologySort, Simple) { + ASSERT_EQ(1, 1); // Stack [] } diff --git a/task_05/src/test.cpp b/task_05/src/test.cpp index ad869d5b..5e11617e 100644 --- a/task_05/src/test.cpp +++ b/task_05/src/test.cpp @@ -1,23 +1,6 @@ -#include "sort.hpp" #include -TEST(Quick_Sort, Simple) { - std::vector vec1{9, 8, 7, 6, 5, 4, 2, 3, 1, 0}; - ASSERT_EQ(Quick_Sort(vec1, 0, 9), - (std::vector{0, 1, 2, 3, 4, 5, 6, 7, 8, 9})); - std::vector vec2{10, 90, 30, 80, 60, 50}; - ASSERT_EQ(Quick_Sort(vec2, 0, 5), - (std::vector{10, 30, 50, 60, 80, 90})); - std::vector vec3{12, 43, 15, 26, -1233, 346, 1325, - -56, -12, 78, 0, 3345, -34}; - ASSERT_EQ(Quick_Sort(vec3, 0, 12), - (std::vector{-1233, -56, -34, -12, 0, 12, 15, 26, 43, 78, 346, - 1325, 3345})); - vec3.push_back(-10); - vec3.push_back(1000); - vec3.push_back(5); - ASSERT_EQ(Quick_Sort(vec3, 0, 15), - (std::vector{-1233, -56, -34, -12, -10, 0, 5, 12, 15, 26, 43, - 78, 346, 1000, 1325, 3345})); +TEST(TopologySort, Simple) { + ASSERT_EQ(1, 1); // Stack [] } diff --git a/task_06/src/test.cpp b/task_06/src/test.cpp index 518cfb7a..5e11617e 100644 --- a/task_06/src/test.cpp +++ b/task_06/src/test.cpp @@ -1,19 +1,6 @@ -#include "k_stat.hpp" + #include -#include -TEST(k_stat, Simple) { - std::vector vec1{14, -1, 5, 21, 6, -3, 7, 93, 9, 0, 84}; - ASSERT_EQ(FindOrderStatistic(vec1, 8), 21); - ASSERT_EQ(FindOrderStatistic(vec1, 3), 5); - ASSERT_EQ(FindOrderStatistic(vec1, 10), 93); - EXPECT_THROW(FindOrderStatistic(vec1, 13), std::logic_error); - std::vector vec2{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; - ASSERT_EQ(FindOrderStatistic(vec2, 4), 5); - vec2.pop_back(); - vec2.pop_back(); - vec2.push_back(-12); - vec2.push_back(100); - vec2.push_back(134); - ASSERT_EQ(FindOrderStatistic(vec2, 9), 100); +TEST(TopologySort, Simple) { + ASSERT_EQ(1, 1); // Stack [] } From c58ab3eab83e440b46ed2405dade4849faecf1f3 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 13 Apr 2024 09:24:05 +0000 Subject: [PATCH 22/26] delete useless --- task_02/CMakeLists.txt | 39 ----------------------- task_02/README.md | 3 -- task_02/src/main.cpp | 3 -- task_02/src/stack.cpp | 21 ------------- task_02/src/stack.hpp | 23 -------------- task_02/src/test.cpp | 42 ------------------------- task_03/CMakeLists.txt | 39 ----------------------- task_03/README.md | 3 -- task_03/src/main.cpp | 3 -- task_03/src/test.cpp | 8 ----- task_03/src/topology_sort.cpp | 1 - task_03/src/topology_sort.hpp | 1 - task_04/CMakeLists.txt | 39 ----------------------- task_04/README.md | 3 -- task_04/src/heap.cpp | 59 ----------------------------------- task_04/src/heap.hpp | 22 ------------- task_04/src/main.cpp | 3 -- task_04/src/test.cpp | 6 ---- task_05/CMakeLists.txt | 39 ----------------------- task_05/README.md | 7 ----- task_05/src/main.cpp | 3 -- task_05/src/sort.cpp | 25 --------------- task_05/src/sort.hpp | 7 ----- task_05/src/test.cpp | 6 ---- task_06/CMakeLists.txt | 39 ----------------------- task_06/README.md | 3 -- task_06/src/k_stat.cpp | 42 ------------------------- task_06/src/k_stat.hpp | 7 ----- task_06/src/main.cpp | 3 -- task_06/src/test.cpp | 6 ---- task_07/CMakeLists.txt | 39 ----------------------- task_07/src/main.cpp | 3 -- task_07/src/test.cpp | 6 ---- task_08/CMakeLists.txt | 39 ----------------------- task_08/README.md | 3 -- task_08/src/hash_table.cpp | 1 - task_08/src/hash_table.hpp | 22 ------------- task_08/src/main.cpp | 3 -- task_08/src/test.cpp | 6 ---- task_09/src/money.cpp | 13 -------- task_09/src/money.hpp | 4 --- 41 files changed, 644 deletions(-) delete mode 100644 task_02/CMakeLists.txt delete mode 100644 task_02/README.md delete mode 100644 task_02/src/main.cpp delete mode 100644 task_02/src/stack.cpp delete mode 100644 task_02/src/stack.hpp delete mode 100644 task_02/src/test.cpp delete mode 100644 task_03/CMakeLists.txt delete mode 100644 task_03/README.md delete mode 100644 task_03/src/main.cpp delete mode 100644 task_03/src/test.cpp delete mode 100644 task_03/src/topology_sort.cpp delete mode 100644 task_03/src/topology_sort.hpp delete mode 100644 task_04/CMakeLists.txt delete mode 100644 task_04/README.md delete mode 100644 task_04/src/heap.cpp delete mode 100644 task_04/src/heap.hpp delete mode 100644 task_04/src/main.cpp delete mode 100644 task_04/src/test.cpp delete mode 100644 task_05/CMakeLists.txt delete mode 100644 task_05/README.md delete mode 100644 task_05/src/main.cpp delete mode 100644 task_05/src/sort.cpp delete mode 100644 task_05/src/sort.hpp delete mode 100644 task_05/src/test.cpp delete mode 100644 task_06/CMakeLists.txt delete mode 100644 task_06/README.md delete mode 100644 task_06/src/k_stat.cpp delete mode 100644 task_06/src/k_stat.hpp delete mode 100644 task_06/src/main.cpp delete mode 100644 task_06/src/test.cpp delete mode 100644 task_07/CMakeLists.txt delete mode 100644 task_07/src/main.cpp delete mode 100644 task_07/src/test.cpp delete mode 100644 task_08/CMakeLists.txt delete mode 100644 task_08/README.md delete mode 100644 task_08/src/hash_table.cpp delete mode 100644 task_08/src/hash_table.hpp delete mode 100644 task_08/src/main.cpp delete mode 100644 task_08/src/test.cpp delete mode 100644 task_09/src/money.cpp delete mode 100644 task_09/src/money.hpp diff --git a/task_02/CMakeLists.txt b/task_02/CMakeLists.txt deleted file mode 100644 index 0e239848..00000000 --- a/task_02/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) -string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) -project(${PROJECT_NAME} C CXX) - -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") -file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") -file(GLOB_RECURSE main_source_list "src/main.cpp") -file(GLOB_RECURSE test_source_list "src/*.cpp") -file(GLOB_RECURSE test_list "src/*test.cpp") - -list(REMOVE_ITEM test_source_list ${main_source_list}) -list(REMOVE_ITEM source_list ${test_list}) - -include_directories(${PROJECT_NAME} PUBLIC src) -include_directories(${PROJECT_NAME} PUBLIC ../lib/src) - -add_executable(${PROJECT_NAME} ${source_list}) -target_link_libraries(${PROJECT_NAME} PUBLIC Utils) - -# Locate GTest -enable_testing() -find_package(GTest REQUIRED) -include_directories(${GTEST_INCLUDE_DIRS}) - -# Link runTests with what we want to test and the GTest and pthread library -add_executable(${PROJECT_NAME}_tests ${test_source_list}) -target_link_libraries( - ${PROJECT_NAME}_tests - GTest::gtest_main - Utils -) - -include(GoogleTest) -gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_02/README.md b/task_02/README.md deleted file mode 100644 index 10911e33..00000000 --- a/task_02/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Задача на стэк - -В данной задаче необходимо реализовать один стэк и стэк с минимумом (нельзя использовать std::stack). Получение минимума должно работать за константное время \ No newline at end of file diff --git a/task_02/src/main.cpp b/task_02/src/main.cpp deleted file mode 100644 index 0e4393ba..00000000 --- a/task_02/src/main.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include - -int main() { return 0; } diff --git a/task_02/src/stack.cpp b/task_02/src/stack.cpp deleted file mode 100644 index 8ca89902..00000000 --- a/task_02/src/stack.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "stack.hpp" - -#include - -void Stack::Push(int value) { data_.push(value); } - -int Stack::Pop() { - auto result = data_.top(); - data_.pop(); - return result; -} - -void MinStack::Push(int value) { data_.push_back(value); } - -int MinStack::Pop() { - auto result = data_.back(); - data_.pop_back(); - return result; -} - -int MinStack::GetMin() { return *std::min_element(data_.begin(), data_.end()); } \ No newline at end of file diff --git a/task_02/src/stack.hpp b/task_02/src/stack.hpp deleted file mode 100644 index 138ec40f..00000000 --- a/task_02/src/stack.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once - -#include -#include - -class Stack { - public: - void Push(int value); - int Pop(); - - private: - std::stack data_; -}; - -class MinStack { - public: - void Push(int value); - int Pop(); - int GetMin(); - - private: - std::vector data_; -}; diff --git a/task_02/src/test.cpp b/task_02/src/test.cpp deleted file mode 100644 index 54e7ce90..00000000 --- a/task_02/src/test.cpp +++ /dev/null @@ -1,42 +0,0 @@ - -#include - -#include - -#include "stack.hpp" - -TEST(StackTest, Simple) { - Stack stack; - stack.Push(1); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] - stack.Push(1); // Stack [1] - stack.Push(2); // Stack [1, 2] - ASSERT_EQ(stack.Pop(), 2); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] - stack.Push(1); // Stack [1] - stack.Push(2); // Stack [1, 2] - ASSERT_EQ(stack.Pop(), 2); // Stack [1] - stack.Push(3); // Stack [1, 3] - ASSERT_EQ(stack.Pop(), 3); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] -} - -TEST(MinStackTest, Simple) { - MinStack stack; - stack.Push(1); // Stack [1] - ASSERT_EQ(stack.GetMin(), 1); - ASSERT_EQ(stack.Pop(), 1); // Stack [] - stack.Push(1); // Stack [1] - stack.Push(2); // Stack [1, 2] - ASSERT_EQ(stack.GetMin(), 1); - ASSERT_EQ(stack.Pop(), 2); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] - stack.Push(1); // Stack [1] - stack.Push(2); // Stack [1, 2] - ASSERT_EQ(stack.GetMin(), 1); - ASSERT_EQ(stack.Pop(), 2); // Stack [1] - stack.Push(3); // Stack [1, 3] - ASSERT_EQ(stack.GetMin(), 1); - ASSERT_EQ(stack.Pop(), 3); // Stack [1] - ASSERT_EQ(stack.Pop(), 1); // Stack [] -} \ No newline at end of file diff --git a/task_03/CMakeLists.txt b/task_03/CMakeLists.txt deleted file mode 100644 index 0e239848..00000000 --- a/task_03/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) -string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) -project(${PROJECT_NAME} C CXX) - -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") -file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") -file(GLOB_RECURSE main_source_list "src/main.cpp") -file(GLOB_RECURSE test_source_list "src/*.cpp") -file(GLOB_RECURSE test_list "src/*test.cpp") - -list(REMOVE_ITEM test_source_list ${main_source_list}) -list(REMOVE_ITEM source_list ${test_list}) - -include_directories(${PROJECT_NAME} PUBLIC src) -include_directories(${PROJECT_NAME} PUBLIC ../lib/src) - -add_executable(${PROJECT_NAME} ${source_list}) -target_link_libraries(${PROJECT_NAME} PUBLIC Utils) - -# Locate GTest -enable_testing() -find_package(GTest REQUIRED) -include_directories(${GTEST_INCLUDE_DIRS}) - -# Link runTests with what we want to test and the GTest and pthread library -add_executable(${PROJECT_NAME}_tests ${test_source_list}) -target_link_libraries( - ${PROJECT_NAME}_tests - GTest::gtest_main - Utils -) - -include(GoogleTest) -gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_03/README.md b/task_03/README.md deleted file mode 100644 index 0819a478..00000000 --- a/task_03/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Задача на количество дней перед потеплением - -Написать функцию в которую передается темепература за каждый день в определенный момент день, нужно вернуть количество дней до повышения температуры для каждого дня, если температура не повысится, то для этого дня поставить в результирующий массив 0. diff --git a/task_03/src/main.cpp b/task_03/src/main.cpp deleted file mode 100644 index 0e4393ba..00000000 --- a/task_03/src/main.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include - -int main() { return 0; } diff --git a/task_03/src/test.cpp b/task_03/src/test.cpp deleted file mode 100644 index ef5a86ae..00000000 --- a/task_03/src/test.cpp +++ /dev/null @@ -1,8 +0,0 @@ - -#include - -#include "topology_sort.hpp" - -TEST(TopologySort, Simple) { - ASSERT_EQ(1, 1); // Stack [] -} diff --git a/task_03/src/topology_sort.cpp b/task_03/src/topology_sort.cpp deleted file mode 100644 index e53f670c..00000000 --- a/task_03/src/topology_sort.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "topology_sort.hpp" diff --git a/task_03/src/topology_sort.hpp b/task_03/src/topology_sort.hpp deleted file mode 100644 index 6f70f09b..00000000 --- a/task_03/src/topology_sort.hpp +++ /dev/null @@ -1 +0,0 @@ -#pragma once diff --git a/task_04/CMakeLists.txt b/task_04/CMakeLists.txt deleted file mode 100644 index 0e239848..00000000 --- a/task_04/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) -string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) -project(${PROJECT_NAME} C CXX) - -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") -file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") -file(GLOB_RECURSE main_source_list "src/main.cpp") -file(GLOB_RECURSE test_source_list "src/*.cpp") -file(GLOB_RECURSE test_list "src/*test.cpp") - -list(REMOVE_ITEM test_source_list ${main_source_list}) -list(REMOVE_ITEM source_list ${test_list}) - -include_directories(${PROJECT_NAME} PUBLIC src) -include_directories(${PROJECT_NAME} PUBLIC ../lib/src) - -add_executable(${PROJECT_NAME} ${source_list}) -target_link_libraries(${PROJECT_NAME} PUBLIC Utils) - -# Locate GTest -enable_testing() -find_package(GTest REQUIRED) -include_directories(${GTEST_INCLUDE_DIRS}) - -# Link runTests with what we want to test and the GTest and pthread library -add_executable(${PROJECT_NAME}_tests ${test_source_list}) -target_link_libraries( - ${PROJECT_NAME}_tests - GTest::gtest_main - Utils -) - -include(GoogleTest) -gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_04/README.md b/task_04/README.md deleted file mode 100644 index eca10891..00000000 --- a/task_04/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Задача на кучу - -В данной задаче необходимо реализовать [кучу](https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D0%BA%D1%83%D1%87%D0%B0), можно пользоваться std::vector \ No newline at end of file diff --git a/task_04/src/heap.cpp b/task_04/src/heap.cpp deleted file mode 100644 index 4ce7d04c..00000000 --- a/task_04/src/heap.cpp +++ /dev/null @@ -1,59 +0,0 @@ -#include "heap.hpp" -#include -#include - -void Heap::SiftDown(int i) { - while (2 * i + 1 < vec_.size()) { - int left = 2 * i + 1; - int right = 2 * i + 2; - int j = left; - if ((right < vec_.size()) && vec_[right] < vec_[left]) - j = right; - if (vec_[i] <= vec_[j]) - break; - std::swap(vec_[i], vec_[j]); - i = j; - } -} - -void Heap::SiftUp(int i) { - while (vec_[i] < (vec_[(i - 1) / 2])) { - std::swap(vec_[i], vec_[(i - 1) / 2]); - i = (i - 1) / 2; - } -} - -int Heap::Find_Min() { return vec_[0]; } - -int Heap::Extract_Min() { - int min = vec_[0]; - vec_[0] = vec_[vec_.size() - 1]; - vec_.erase(vec_.begin()); - SiftDown(0); - return min; -} - -std::vector Heap::Copy_Heap() { return vec_; } - -void Heap::Insert(int value) { - vec_.push_back(value); - SiftUp(vec_.size() - 1); -} - -void Heap::Build_heap(std::vector vec) { - for (int i = 0; i < vec.size(); ++i) { - Insert(vec[i]); - } -} - -int Find_Minimum(std::vector vec) { - Heap heap; - heap.Build_heap(vec); - return heap.Find_Min(); -} - -std::vector Heap_Ready(std::vector vec) { - Heap heap; - heap.Build_heap(vec); - return heap.Copy_Heap(); -} \ No newline at end of file diff --git a/task_04/src/heap.hpp b/task_04/src/heap.hpp deleted file mode 100644 index 2191ddef..00000000 --- a/task_04/src/heap.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -#include -#include - -class Heap { -public: - void SiftDown(int i); - void SiftUp(int i); - void Insert(int value); - int Find_Min(); - void Build_heap(std::vector vec); - int Extract_Min(); - std::vector Copy_Heap(); - -private: - std::vector vec_; -}; - -int Find_Minimum(std::vector vec); - -std::vector Heap_Ready(std::vector heap); \ No newline at end of file diff --git a/task_04/src/main.cpp b/task_04/src/main.cpp deleted file mode 100644 index 0e4393ba..00000000 --- a/task_04/src/main.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include - -int main() { return 0; } diff --git a/task_04/src/test.cpp b/task_04/src/test.cpp deleted file mode 100644 index 5e11617e..00000000 --- a/task_04/src/test.cpp +++ /dev/null @@ -1,6 +0,0 @@ - -#include - -TEST(TopologySort, Simple) { - ASSERT_EQ(1, 1); // Stack [] -} diff --git a/task_05/CMakeLists.txt b/task_05/CMakeLists.txt deleted file mode 100644 index 0e239848..00000000 --- a/task_05/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) -string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) -project(${PROJECT_NAME} C CXX) - -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") -file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") -file(GLOB_RECURSE main_source_list "src/main.cpp") -file(GLOB_RECURSE test_source_list "src/*.cpp") -file(GLOB_RECURSE test_list "src/*test.cpp") - -list(REMOVE_ITEM test_source_list ${main_source_list}) -list(REMOVE_ITEM source_list ${test_list}) - -include_directories(${PROJECT_NAME} PUBLIC src) -include_directories(${PROJECT_NAME} PUBLIC ../lib/src) - -add_executable(${PROJECT_NAME} ${source_list}) -target_link_libraries(${PROJECT_NAME} PUBLIC Utils) - -# Locate GTest -enable_testing() -find_package(GTest REQUIRED) -include_directories(${GTEST_INCLUDE_DIRS}) - -# Link runTests with what we want to test and the GTest and pthread library -add_executable(${PROJECT_NAME}_tests ${test_source_list}) -target_link_libraries( - ${PROJECT_NAME}_tests - GTest::gtest_main - Utils -) - -include(GoogleTest) -gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_05/README.md b/task_05/README.md deleted file mode 100644 index 4329c406..00000000 --- a/task_05/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Задача на сортировку - -В данной задаче необходимо реализовать сортировку одним из эфективных алгоритмов - -* Merge sort -* Quick sort -* Heap sort \ No newline at end of file diff --git a/task_05/src/main.cpp b/task_05/src/main.cpp deleted file mode 100644 index 0e4393ba..00000000 --- a/task_05/src/main.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include - -int main() { return 0; } diff --git a/task_05/src/sort.cpp b/task_05/src/sort.cpp deleted file mode 100644 index 7024d8e4..00000000 --- a/task_05/src/sort.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include "sort.hpp" -#include -#include - -int Partition(std::vector &arr, int low, int high) { - int pivot = arr[high]; - int i = low - 1; - for (int j = low; j <= high; ++j) { - if (arr[j] < pivot) { - ++i; - std::swap(arr[i], arr[j]); - } - } - std::swap(arr[i + 1], arr[high]); - return (i + 1); -} - -std::vector Quick_Sort(std::vector &arr, int low, int high) { - if (low < high) { - int m = Partition(arr, low, high); - Quick_Sort(arr, low, m - 1); - Quick_Sort(arr, m + 1, high); - } - return arr; -} \ No newline at end of file diff --git a/task_05/src/sort.hpp b/task_05/src/sort.hpp deleted file mode 100644 index f4ed6f5f..00000000 --- a/task_05/src/sort.hpp +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once -#include -#include - -int Partition(std::vector &arr, int low, int high); - -std::vector Quick_Sort(std::vector &arr, int low, int high); \ No newline at end of file diff --git a/task_05/src/test.cpp b/task_05/src/test.cpp deleted file mode 100644 index 5e11617e..00000000 --- a/task_05/src/test.cpp +++ /dev/null @@ -1,6 +0,0 @@ - -#include - -TEST(TopologySort, Simple) { - ASSERT_EQ(1, 1); // Stack [] -} diff --git a/task_06/CMakeLists.txt b/task_06/CMakeLists.txt deleted file mode 100644 index 0e239848..00000000 --- a/task_06/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) -string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) -project(${PROJECT_NAME} C CXX) - -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") -file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") -file(GLOB_RECURSE main_source_list "src/main.cpp") -file(GLOB_RECURSE test_source_list "src/*.cpp") -file(GLOB_RECURSE test_list "src/*test.cpp") - -list(REMOVE_ITEM test_source_list ${main_source_list}) -list(REMOVE_ITEM source_list ${test_list}) - -include_directories(${PROJECT_NAME} PUBLIC src) -include_directories(${PROJECT_NAME} PUBLIC ../lib/src) - -add_executable(${PROJECT_NAME} ${source_list}) -target_link_libraries(${PROJECT_NAME} PUBLIC Utils) - -# Locate GTest -enable_testing() -find_package(GTest REQUIRED) -include_directories(${GTEST_INCLUDE_DIRS}) - -# Link runTests with what we want to test and the GTest and pthread library -add_executable(${PROJECT_NAME}_tests ${test_source_list}) -target_link_libraries( - ${PROJECT_NAME}_tests - GTest::gtest_main - Utils -) - -include(GoogleTest) -gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_06/README.md b/task_06/README.md deleted file mode 100644 index c8658bc9..00000000 --- a/task_06/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Задача на порядковые статистики - -В данной задаче необходимо реализовать поиск n-ой порядковой статистики \ No newline at end of file diff --git a/task_06/src/k_stat.cpp b/task_06/src/k_stat.cpp deleted file mode 100644 index 2cd66971..00000000 --- a/task_06/src/k_stat.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include "k_stat.hpp" -#include -#include - -int Partition(std::vector &vec, int l, int r) { - int piv = vec[rand() % vec.size()]; - int i = l; - int j = r; - while (i <= j) { - while (vec[i] < piv) { - i++; - } - while (vec[j] > piv) { - j--; - } - if (i >= j) { - break; - } - std::swap(vec[i++], vec[j--]); - } - return j; -} - -int FindOrderStatistic(std::vector &vec, int k) { - int left = 0; - int right = int(vec.size() - 1); - while (left < vec.size()) { - int mid = Partition(vec, left, right); - - if (mid == k) { - return vec[mid]; - } - - else if (k < mid) { - right = mid; - } else { - left = mid + 1; - } - } - throw std::logic_error("Wrong k order statistic"); -} - diff --git a/task_06/src/k_stat.hpp b/task_06/src/k_stat.hpp deleted file mode 100644 index 4a90dcc7..00000000 --- a/task_06/src/k_stat.hpp +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once -#include -#include - -int Partition(std::vector &vec, int l, int r); - -int FindOrderStatistic(std::vector &vec, int k); \ No newline at end of file diff --git a/task_06/src/main.cpp b/task_06/src/main.cpp deleted file mode 100644 index 0e4393ba..00000000 --- a/task_06/src/main.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include - -int main() { return 0; } diff --git a/task_06/src/test.cpp b/task_06/src/test.cpp deleted file mode 100644 index 5e11617e..00000000 --- a/task_06/src/test.cpp +++ /dev/null @@ -1,6 +0,0 @@ - -#include - -TEST(TopologySort, Simple) { - ASSERT_EQ(1, 1); // Stack [] -} diff --git a/task_07/CMakeLists.txt b/task_07/CMakeLists.txt deleted file mode 100644 index 0e239848..00000000 --- a/task_07/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) -string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) -project(${PROJECT_NAME} C CXX) - -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") -file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") -file(GLOB_RECURSE main_source_list "src/main.cpp") -file(GLOB_RECURSE test_source_list "src/*.cpp") -file(GLOB_RECURSE test_list "src/*test.cpp") - -list(REMOVE_ITEM test_source_list ${main_source_list}) -list(REMOVE_ITEM source_list ${test_list}) - -include_directories(${PROJECT_NAME} PUBLIC src) -include_directories(${PROJECT_NAME} PUBLIC ../lib/src) - -add_executable(${PROJECT_NAME} ${source_list}) -target_link_libraries(${PROJECT_NAME} PUBLIC Utils) - -# Locate GTest -enable_testing() -find_package(GTest REQUIRED) -include_directories(${GTEST_INCLUDE_DIRS}) - -# Link runTests with what we want to test and the GTest and pthread library -add_executable(${PROJECT_NAME}_tests ${test_source_list}) -target_link_libraries( - ${PROJECT_NAME}_tests - GTest::gtest_main - Utils -) - -include(GoogleTest) -gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_07/src/main.cpp b/task_07/src/main.cpp deleted file mode 100644 index 0e4393ba..00000000 --- a/task_07/src/main.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include - -int main() { return 0; } diff --git a/task_07/src/test.cpp b/task_07/src/test.cpp deleted file mode 100644 index 5e11617e..00000000 --- a/task_07/src/test.cpp +++ /dev/null @@ -1,6 +0,0 @@ - -#include - -TEST(TopologySort, Simple) { - ASSERT_EQ(1, 1); // Stack [] -} diff --git a/task_08/CMakeLists.txt b/task_08/CMakeLists.txt deleted file mode 100644 index 0e239848..00000000 --- a/task_08/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) -string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) -project(${PROJECT_NAME} C CXX) - -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") -file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") -file(GLOB_RECURSE main_source_list "src/main.cpp") -file(GLOB_RECURSE test_source_list "src/*.cpp") -file(GLOB_RECURSE test_list "src/*test.cpp") - -list(REMOVE_ITEM test_source_list ${main_source_list}) -list(REMOVE_ITEM source_list ${test_list}) - -include_directories(${PROJECT_NAME} PUBLIC src) -include_directories(${PROJECT_NAME} PUBLIC ../lib/src) - -add_executable(${PROJECT_NAME} ${source_list}) -target_link_libraries(${PROJECT_NAME} PUBLIC Utils) - -# Locate GTest -enable_testing() -find_package(GTest REQUIRED) -include_directories(${GTEST_INCLUDE_DIRS}) - -# Link runTests with what we want to test and the GTest and pthread library -add_executable(${PROJECT_NAME}_tests ${test_source_list}) -target_link_libraries( - ${PROJECT_NAME}_tests - GTest::gtest_main - Utils -) - -include(GoogleTest) -gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_08/README.md b/task_08/README.md deleted file mode 100644 index 621d8834..00000000 --- a/task_08/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Задача на хэш таблицу - -В данной задаче необходимо реализовать хэш таблицу \ No newline at end of file diff --git a/task_08/src/hash_table.cpp b/task_08/src/hash_table.cpp deleted file mode 100644 index d65b8727..00000000 --- a/task_08/src/hash_table.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "hash_table.hpp" diff --git a/task_08/src/hash_table.hpp b/task_08/src/hash_table.hpp deleted file mode 100644 index e318d885..00000000 --- a/task_08/src/hash_table.hpp +++ /dev/null @@ -1,22 +0,0 @@ -// #pragma once -// #include -// #include -// #include -// #include - -// template class HashTable { -// public: -// void Insert(K key, V value); -// void Delete(K key); -// bool Contains(K key); - -// private: -// size_t size; -// std::vector> H_Table(auto size); -// void ReHash(); -// }; - -// template void HashTable::Insert(K key, V value) { -// size_t hash = std::hash(key) % size; -// H_Table[hash].push_back(key, value); -// } \ No newline at end of file diff --git a/task_08/src/main.cpp b/task_08/src/main.cpp deleted file mode 100644 index 0e4393ba..00000000 --- a/task_08/src/main.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include - -int main() { return 0; } diff --git a/task_08/src/test.cpp b/task_08/src/test.cpp deleted file mode 100644 index 5e11617e..00000000 --- a/task_08/src/test.cpp +++ /dev/null @@ -1,6 +0,0 @@ - -#include - -TEST(TopologySort, Simple) { - ASSERT_EQ(1, 1); // Stack [] -} diff --git a/task_09/src/money.cpp b/task_09/src/money.cpp deleted file mode 100644 index 4b6ce5f4..00000000 --- a/task_09/src/money.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include "money.hpp" - -int solve(std::vector &vec, int number){ - std::vectortable(number, 1e9); - for(int i = 0; i < number; i++){ - for(int j = 0; j < vec.size(); ++j){ - if(vec[j] <= i){ - table[i] = std::min(table[i], 1 + table[i-j]); - } - } - } - return table[number - 1]; -} \ No newline at end of file diff --git a/task_09/src/money.hpp b/task_09/src/money.hpp deleted file mode 100644 index 5192069f..00000000 --- a/task_09/src/money.hpp +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once -#include - -int solve(std::vector &vec, int number); From 78274120b7baabefd83ba1c5facbbc5bdffb92c7 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 13 Apr 2024 09:28:25 +0000 Subject: [PATCH 23/26] last changes --- task_01/src/utils.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/task_01/src/utils.cpp b/task_01/src/utils.cpp index e9343911..2f1f57c6 100644 --- a/task_01/src/utils.cpp +++ b/task_01/src/utils.cpp @@ -1,4 +1,5 @@ #include "utils.hpp" + #include #include #include From 49668c7db2643c0b619fe85aa26634e3921ec8d1 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 13 Apr 2024 09:32:20 +0000 Subject: [PATCH 24/26] fix --- task_02/CMakeLists.txt | 39 ++++++++++++++++++++++++++++++++ task_02/README.md | 3 +++ task_02/src/main.cpp | 3 +++ task_02/src/stack.cpp | 21 ++++++++++++++++++ task_02/src/stack.hpp | 23 +++++++++++++++++++ task_02/src/test.cpp | 42 +++++++++++++++++++++++++++++++++++ task_03/CMakeLists.txt | 39 ++++++++++++++++++++++++++++++++ task_03/README.md | 3 +++ task_03/src/main.cpp | 3 +++ task_03/src/test.cpp | 8 +++++++ task_03/src/topology_sort.cpp | 1 + task_03/src/topology_sort.hpp | 1 + 12 files changed, 186 insertions(+) create mode 100644 task_02/CMakeLists.txt create mode 100644 task_02/README.md create mode 100644 task_02/src/main.cpp create mode 100644 task_02/src/stack.cpp create mode 100644 task_02/src/stack.hpp create mode 100644 task_02/src/test.cpp create mode 100644 task_03/CMakeLists.txt create mode 100644 task_03/README.md create mode 100644 task_03/src/main.cpp create mode 100644 task_03/src/test.cpp create mode 100644 task_03/src/topology_sort.cpp create mode 100644 task_03/src/topology_sort.hpp diff --git a/task_02/CMakeLists.txt b/task_02/CMakeLists.txt new file mode 100644 index 00000000..0e239848 --- /dev/null +++ b/task_02/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.10) + +get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) +string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) +project(${PROJECT_NAME} C CXX) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") +file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") +file(GLOB_RECURSE main_source_list "src/main.cpp") +file(GLOB_RECURSE test_source_list "src/*.cpp") +file(GLOB_RECURSE test_list "src/*test.cpp") + +list(REMOVE_ITEM test_source_list ${main_source_list}) +list(REMOVE_ITEM source_list ${test_list}) + +include_directories(${PROJECT_NAME} PUBLIC src) +include_directories(${PROJECT_NAME} PUBLIC ../lib/src) + +add_executable(${PROJECT_NAME} ${source_list}) +target_link_libraries(${PROJECT_NAME} PUBLIC Utils) + +# Locate GTest +enable_testing() +find_package(GTest REQUIRED) +include_directories(${GTEST_INCLUDE_DIRS}) + +# Link runTests with what we want to test and the GTest and pthread library +add_executable(${PROJECT_NAME}_tests ${test_source_list}) +target_link_libraries( + ${PROJECT_NAME}_tests + GTest::gtest_main + Utils +) + +include(GoogleTest) +gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_02/README.md b/task_02/README.md new file mode 100644 index 00000000..10911e33 --- /dev/null +++ b/task_02/README.md @@ -0,0 +1,3 @@ +# Задача на стэк + +В данной задаче необходимо реализовать один стэк и стэк с минимумом (нельзя использовать std::stack). Получение минимума должно работать за константное время \ No newline at end of file diff --git a/task_02/src/main.cpp b/task_02/src/main.cpp new file mode 100644 index 00000000..0e4393ba --- /dev/null +++ b/task_02/src/main.cpp @@ -0,0 +1,3 @@ +#include + +int main() { return 0; } diff --git a/task_02/src/stack.cpp b/task_02/src/stack.cpp new file mode 100644 index 00000000..8ca89902 --- /dev/null +++ b/task_02/src/stack.cpp @@ -0,0 +1,21 @@ +#include "stack.hpp" + +#include + +void Stack::Push(int value) { data_.push(value); } + +int Stack::Pop() { + auto result = data_.top(); + data_.pop(); + return result; +} + +void MinStack::Push(int value) { data_.push_back(value); } + +int MinStack::Pop() { + auto result = data_.back(); + data_.pop_back(); + return result; +} + +int MinStack::GetMin() { return *std::min_element(data_.begin(), data_.end()); } \ No newline at end of file diff --git a/task_02/src/stack.hpp b/task_02/src/stack.hpp new file mode 100644 index 00000000..138ec40f --- /dev/null +++ b/task_02/src/stack.hpp @@ -0,0 +1,23 @@ +#pragma once + +#include +#include + +class Stack { + public: + void Push(int value); + int Pop(); + + private: + std::stack data_; +}; + +class MinStack { + public: + void Push(int value); + int Pop(); + int GetMin(); + + private: + std::vector data_; +}; diff --git a/task_02/src/test.cpp b/task_02/src/test.cpp new file mode 100644 index 00000000..54e7ce90 --- /dev/null +++ b/task_02/src/test.cpp @@ -0,0 +1,42 @@ + +#include + +#include + +#include "stack.hpp" + +TEST(StackTest, Simple) { + Stack stack; + stack.Push(1); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + stack.Push(2); // Stack [1, 2] + ASSERT_EQ(stack.Pop(), 2); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + stack.Push(2); // Stack [1, 2] + ASSERT_EQ(stack.Pop(), 2); // Stack [1] + stack.Push(3); // Stack [1, 3] + ASSERT_EQ(stack.Pop(), 3); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] +} + +TEST(MinStackTest, Simple) { + MinStack stack; + stack.Push(1); // Stack [1] + ASSERT_EQ(stack.GetMin(), 1); + ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + stack.Push(2); // Stack [1, 2] + ASSERT_EQ(stack.GetMin(), 1); + ASSERT_EQ(stack.Pop(), 2); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] + stack.Push(1); // Stack [1] + stack.Push(2); // Stack [1, 2] + ASSERT_EQ(stack.GetMin(), 1); + ASSERT_EQ(stack.Pop(), 2); // Stack [1] + stack.Push(3); // Stack [1, 3] + ASSERT_EQ(stack.GetMin(), 1); + ASSERT_EQ(stack.Pop(), 3); // Stack [1] + ASSERT_EQ(stack.Pop(), 1); // Stack [] +} \ No newline at end of file diff --git a/task_03/CMakeLists.txt b/task_03/CMakeLists.txt new file mode 100644 index 00000000..0e239848 --- /dev/null +++ b/task_03/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.10) + +get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) +string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) +project(${PROJECT_NAME} C CXX) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") +file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") +file(GLOB_RECURSE main_source_list "src/main.cpp") +file(GLOB_RECURSE test_source_list "src/*.cpp") +file(GLOB_RECURSE test_list "src/*test.cpp") + +list(REMOVE_ITEM test_source_list ${main_source_list}) +list(REMOVE_ITEM source_list ${test_list}) + +include_directories(${PROJECT_NAME} PUBLIC src) +include_directories(${PROJECT_NAME} PUBLIC ../lib/src) + +add_executable(${PROJECT_NAME} ${source_list}) +target_link_libraries(${PROJECT_NAME} PUBLIC Utils) + +# Locate GTest +enable_testing() +find_package(GTest REQUIRED) +include_directories(${GTEST_INCLUDE_DIRS}) + +# Link runTests with what we want to test and the GTest and pthread library +add_executable(${PROJECT_NAME}_tests ${test_source_list}) +target_link_libraries( + ${PROJECT_NAME}_tests + GTest::gtest_main + Utils +) + +include(GoogleTest) +gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_03/README.md b/task_03/README.md new file mode 100644 index 00000000..0819a478 --- /dev/null +++ b/task_03/README.md @@ -0,0 +1,3 @@ +# Задача на количество дней перед потеплением + +Написать функцию в которую передается темепература за каждый день в определенный момент день, нужно вернуть количество дней до повышения температуры для каждого дня, если температура не повысится, то для этого дня поставить в результирующий массив 0. diff --git a/task_03/src/main.cpp b/task_03/src/main.cpp new file mode 100644 index 00000000..0e4393ba --- /dev/null +++ b/task_03/src/main.cpp @@ -0,0 +1,3 @@ +#include + +int main() { return 0; } diff --git a/task_03/src/test.cpp b/task_03/src/test.cpp new file mode 100644 index 00000000..ef5a86ae --- /dev/null +++ b/task_03/src/test.cpp @@ -0,0 +1,8 @@ + +#include + +#include "topology_sort.hpp" + +TEST(TopologySort, Simple) { + ASSERT_EQ(1, 1); // Stack [] +} diff --git a/task_03/src/topology_sort.cpp b/task_03/src/topology_sort.cpp new file mode 100644 index 00000000..e53f670c --- /dev/null +++ b/task_03/src/topology_sort.cpp @@ -0,0 +1 @@ +#include "topology_sort.hpp" diff --git a/task_03/src/topology_sort.hpp b/task_03/src/topology_sort.hpp new file mode 100644 index 00000000..6f70f09b --- /dev/null +++ b/task_03/src/topology_sort.hpp @@ -0,0 +1 @@ +#pragma once From b2361f81a46ab35c17a3c61e90cfb40bfea7587b Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 13 Apr 2024 09:35:53 +0000 Subject: [PATCH 25/26] fix --- task_04/CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++++++++ task_04/README.md | 3 +++ task_04/src/main.cpp | 3 +++ task_04/src/test.cpp | 6 ++++++ 4 files changed, 51 insertions(+) create mode 100644 task_04/CMakeLists.txt create mode 100644 task_04/README.md create mode 100644 task_04/src/main.cpp create mode 100644 task_04/src/test.cpp diff --git a/task_04/CMakeLists.txt b/task_04/CMakeLists.txt new file mode 100644 index 00000000..0e239848 --- /dev/null +++ b/task_04/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.10) + +get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) +string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) +project(${PROJECT_NAME} C CXX) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") +file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") +file(GLOB_RECURSE main_source_list "src/main.cpp") +file(GLOB_RECURSE test_source_list "src/*.cpp") +file(GLOB_RECURSE test_list "src/*test.cpp") + +list(REMOVE_ITEM test_source_list ${main_source_list}) +list(REMOVE_ITEM source_list ${test_list}) + +include_directories(${PROJECT_NAME} PUBLIC src) +include_directories(${PROJECT_NAME} PUBLIC ../lib/src) + +add_executable(${PROJECT_NAME} ${source_list}) +target_link_libraries(${PROJECT_NAME} PUBLIC Utils) + +# Locate GTest +enable_testing() +find_package(GTest REQUIRED) +include_directories(${GTEST_INCLUDE_DIRS}) + +# Link runTests with what we want to test and the GTest and pthread library +add_executable(${PROJECT_NAME}_tests ${test_source_list}) +target_link_libraries( + ${PROJECT_NAME}_tests + GTest::gtest_main + Utils +) + +include(GoogleTest) +gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_04/README.md b/task_04/README.md new file mode 100644 index 00000000..eca10891 --- /dev/null +++ b/task_04/README.md @@ -0,0 +1,3 @@ +# Задача на кучу + +В данной задаче необходимо реализовать [кучу](https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D0%BA%D1%83%D1%87%D0%B0), можно пользоваться std::vector \ No newline at end of file diff --git a/task_04/src/main.cpp b/task_04/src/main.cpp new file mode 100644 index 00000000..0e4393ba --- /dev/null +++ b/task_04/src/main.cpp @@ -0,0 +1,3 @@ +#include + +int main() { return 0; } diff --git a/task_04/src/test.cpp b/task_04/src/test.cpp new file mode 100644 index 00000000..5e11617e --- /dev/null +++ b/task_04/src/test.cpp @@ -0,0 +1,6 @@ + +#include + +TEST(TopologySort, Simple) { + ASSERT_EQ(1, 1); // Stack [] +} From cc0385e2ee5115c887a028057da2c26d84d50417 Mon Sep 17 00:00:00 2001 From: Matvey-cmd <143873323+Matvey-cmd@users.noreply.github.com> Date: Sat, 13 Apr 2024 09:36:27 +0000 Subject: [PATCH 26/26] fix --- task_05/CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++++++++ task_05/README.md | 7 +++++++ task_05/src/main.cpp | 3 +++ task_05/src/test.cpp | 6 ++++++ task_06/CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++++++++ task_06/README.md | 3 +++ task_06/src/main.cpp | 3 +++ task_06/src/test.cpp | 6 ++++++ task_07/CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++++++++ task_07/src/main.cpp | 3 +++ task_07/src/test.cpp | 6 ++++++ task_08/CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++++++++ task_08/README.md | 3 +++ task_08/src/main.cpp | 3 +++ task_08/src/test.cpp | 6 ++++++ 15 files changed, 205 insertions(+) create mode 100644 task_05/CMakeLists.txt create mode 100644 task_05/README.md create mode 100644 task_05/src/main.cpp create mode 100644 task_05/src/test.cpp create mode 100644 task_06/CMakeLists.txt create mode 100644 task_06/README.md create mode 100644 task_06/src/main.cpp create mode 100644 task_06/src/test.cpp create mode 100644 task_07/CMakeLists.txt create mode 100644 task_07/src/main.cpp create mode 100644 task_07/src/test.cpp create mode 100644 task_08/CMakeLists.txt create mode 100644 task_08/README.md create mode 100644 task_08/src/main.cpp create mode 100644 task_08/src/test.cpp diff --git a/task_05/CMakeLists.txt b/task_05/CMakeLists.txt new file mode 100644 index 00000000..0e239848 --- /dev/null +++ b/task_05/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.10) + +get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) +string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) +project(${PROJECT_NAME} C CXX) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") +file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") +file(GLOB_RECURSE main_source_list "src/main.cpp") +file(GLOB_RECURSE test_source_list "src/*.cpp") +file(GLOB_RECURSE test_list "src/*test.cpp") + +list(REMOVE_ITEM test_source_list ${main_source_list}) +list(REMOVE_ITEM source_list ${test_list}) + +include_directories(${PROJECT_NAME} PUBLIC src) +include_directories(${PROJECT_NAME} PUBLIC ../lib/src) + +add_executable(${PROJECT_NAME} ${source_list}) +target_link_libraries(${PROJECT_NAME} PUBLIC Utils) + +# Locate GTest +enable_testing() +find_package(GTest REQUIRED) +include_directories(${GTEST_INCLUDE_DIRS}) + +# Link runTests with what we want to test and the GTest and pthread library +add_executable(${PROJECT_NAME}_tests ${test_source_list}) +target_link_libraries( + ${PROJECT_NAME}_tests + GTest::gtest_main + Utils +) + +include(GoogleTest) +gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_05/README.md b/task_05/README.md new file mode 100644 index 00000000..4329c406 --- /dev/null +++ b/task_05/README.md @@ -0,0 +1,7 @@ +# Задача на сортировку + +В данной задаче необходимо реализовать сортировку одним из эфективных алгоритмов + +* Merge sort +* Quick sort +* Heap sort \ No newline at end of file diff --git a/task_05/src/main.cpp b/task_05/src/main.cpp new file mode 100644 index 00000000..0e4393ba --- /dev/null +++ b/task_05/src/main.cpp @@ -0,0 +1,3 @@ +#include + +int main() { return 0; } diff --git a/task_05/src/test.cpp b/task_05/src/test.cpp new file mode 100644 index 00000000..5e11617e --- /dev/null +++ b/task_05/src/test.cpp @@ -0,0 +1,6 @@ + +#include + +TEST(TopologySort, Simple) { + ASSERT_EQ(1, 1); // Stack [] +} diff --git a/task_06/CMakeLists.txt b/task_06/CMakeLists.txt new file mode 100644 index 00000000..0e239848 --- /dev/null +++ b/task_06/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.10) + +get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) +string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) +project(${PROJECT_NAME} C CXX) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") +file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") +file(GLOB_RECURSE main_source_list "src/main.cpp") +file(GLOB_RECURSE test_source_list "src/*.cpp") +file(GLOB_RECURSE test_list "src/*test.cpp") + +list(REMOVE_ITEM test_source_list ${main_source_list}) +list(REMOVE_ITEM source_list ${test_list}) + +include_directories(${PROJECT_NAME} PUBLIC src) +include_directories(${PROJECT_NAME} PUBLIC ../lib/src) + +add_executable(${PROJECT_NAME} ${source_list}) +target_link_libraries(${PROJECT_NAME} PUBLIC Utils) + +# Locate GTest +enable_testing() +find_package(GTest REQUIRED) +include_directories(${GTEST_INCLUDE_DIRS}) + +# Link runTests with what we want to test and the GTest and pthread library +add_executable(${PROJECT_NAME}_tests ${test_source_list}) +target_link_libraries( + ${PROJECT_NAME}_tests + GTest::gtest_main + Utils +) + +include(GoogleTest) +gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_06/README.md b/task_06/README.md new file mode 100644 index 00000000..c8658bc9 --- /dev/null +++ b/task_06/README.md @@ -0,0 +1,3 @@ +# Задача на порядковые статистики + +В данной задаче необходимо реализовать поиск n-ой порядковой статистики \ No newline at end of file diff --git a/task_06/src/main.cpp b/task_06/src/main.cpp new file mode 100644 index 00000000..0e4393ba --- /dev/null +++ b/task_06/src/main.cpp @@ -0,0 +1,3 @@ +#include + +int main() { return 0; } diff --git a/task_06/src/test.cpp b/task_06/src/test.cpp new file mode 100644 index 00000000..5e11617e --- /dev/null +++ b/task_06/src/test.cpp @@ -0,0 +1,6 @@ + +#include + +TEST(TopologySort, Simple) { + ASSERT_EQ(1, 1); // Stack [] +} diff --git a/task_07/CMakeLists.txt b/task_07/CMakeLists.txt new file mode 100644 index 00000000..0e239848 --- /dev/null +++ b/task_07/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.10) + +get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) +string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) +project(${PROJECT_NAME} C CXX) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") +file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") +file(GLOB_RECURSE main_source_list "src/main.cpp") +file(GLOB_RECURSE test_source_list "src/*.cpp") +file(GLOB_RECURSE test_list "src/*test.cpp") + +list(REMOVE_ITEM test_source_list ${main_source_list}) +list(REMOVE_ITEM source_list ${test_list}) + +include_directories(${PROJECT_NAME} PUBLIC src) +include_directories(${PROJECT_NAME} PUBLIC ../lib/src) + +add_executable(${PROJECT_NAME} ${source_list}) +target_link_libraries(${PROJECT_NAME} PUBLIC Utils) + +# Locate GTest +enable_testing() +find_package(GTest REQUIRED) +include_directories(${GTEST_INCLUDE_DIRS}) + +# Link runTests with what we want to test and the GTest and pthread library +add_executable(${PROJECT_NAME}_tests ${test_source_list}) +target_link_libraries( + ${PROJECT_NAME}_tests + GTest::gtest_main + Utils +) + +include(GoogleTest) +gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_07/src/main.cpp b/task_07/src/main.cpp new file mode 100644 index 00000000..0e4393ba --- /dev/null +++ b/task_07/src/main.cpp @@ -0,0 +1,3 @@ +#include + +int main() { return 0; } diff --git a/task_07/src/test.cpp b/task_07/src/test.cpp new file mode 100644 index 00000000..5e11617e --- /dev/null +++ b/task_07/src/test.cpp @@ -0,0 +1,6 @@ + +#include + +TEST(TopologySort, Simple) { + ASSERT_EQ(1, 1); // Stack [] +} diff --git a/task_08/CMakeLists.txt b/task_08/CMakeLists.txt new file mode 100644 index 00000000..0e239848 --- /dev/null +++ b/task_08/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.10) + +get_filename_component(PROJECT_NAME ${CMAKE_CURRENT_LIST_DIR} NAME) +string(REPLACE " " "_" PROJECT_NAME ${PROJECT_NAME}) +project(${PROJECT_NAME} C CXX) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +file(GLOB_RECURSE source_list "src/*.cpp" "src/*.hpp") +file(GLOB_RECURSE lib_source_list "../lib/src/*.cpp" "../lib/src/*.hpp") +file(GLOB_RECURSE main_source_list "src/main.cpp") +file(GLOB_RECURSE test_source_list "src/*.cpp") +file(GLOB_RECURSE test_list "src/*test.cpp") + +list(REMOVE_ITEM test_source_list ${main_source_list}) +list(REMOVE_ITEM source_list ${test_list}) + +include_directories(${PROJECT_NAME} PUBLIC src) +include_directories(${PROJECT_NAME} PUBLIC ../lib/src) + +add_executable(${PROJECT_NAME} ${source_list}) +target_link_libraries(${PROJECT_NAME} PUBLIC Utils) + +# Locate GTest +enable_testing() +find_package(GTest REQUIRED) +include_directories(${GTEST_INCLUDE_DIRS}) + +# Link runTests with what we want to test and the GTest and pthread library +add_executable(${PROJECT_NAME}_tests ${test_source_list}) +target_link_libraries( + ${PROJECT_NAME}_tests + GTest::gtest_main + Utils +) + +include(GoogleTest) +gtest_discover_tests(${PROJECT_NAME}_tests) diff --git a/task_08/README.md b/task_08/README.md new file mode 100644 index 00000000..621d8834 --- /dev/null +++ b/task_08/README.md @@ -0,0 +1,3 @@ +# Задача на хэш таблицу + +В данной задаче необходимо реализовать хэш таблицу \ No newline at end of file diff --git a/task_08/src/main.cpp b/task_08/src/main.cpp new file mode 100644 index 00000000..0e4393ba --- /dev/null +++ b/task_08/src/main.cpp @@ -0,0 +1,3 @@ +#include + +int main() { return 0; } diff --git a/task_08/src/test.cpp b/task_08/src/test.cpp new file mode 100644 index 00000000..5e11617e --- /dev/null +++ b/task_08/src/test.cpp @@ -0,0 +1,6 @@ + +#include + +TEST(TopologySort, Simple) { + ASSERT_EQ(1, 1); // Stack [] +}