diff --git a/Linear Data Structures and Linked Lists/Linear Data Structures and Linked Lists.sln b/Linear Data Structures and Linked Lists/Linear Data Structures and Linked Lists.sln new file mode 100644 index 0000000..954fc1f --- /dev/null +++ b/Linear Data Structures and Linked Lists/Linear Data Structures and Linked Lists.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31808.319 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Linear Data Structures and Linked Lists", "Linear Data Structures and Linked Lists.vcxproj", "{667CD8AC-8201-452C-8FE7-EC68B2AFCD47}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {667CD8AC-8201-452C-8FE7-EC68B2AFCD47}.Debug|x64.ActiveCfg = Debug|x64 + {667CD8AC-8201-452C-8FE7-EC68B2AFCD47}.Debug|x64.Build.0 = Debug|x64 + {667CD8AC-8201-452C-8FE7-EC68B2AFCD47}.Debug|x86.ActiveCfg = Debug|Win32 + {667CD8AC-8201-452C-8FE7-EC68B2AFCD47}.Debug|x86.Build.0 = Debug|Win32 + {667CD8AC-8201-452C-8FE7-EC68B2AFCD47}.Release|x64.ActiveCfg = Release|x64 + {667CD8AC-8201-452C-8FE7-EC68B2AFCD47}.Release|x64.Build.0 = Release|x64 + {667CD8AC-8201-452C-8FE7-EC68B2AFCD47}.Release|x86.ActiveCfg = Release|Win32 + {667CD8AC-8201-452C-8FE7-EC68B2AFCD47}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {70604C3D-8764-4A7B-B2F1-E67DFBD75067} + EndGlobalSection +EndGlobal diff --git a/Linear Data Structures and Linked Lists/Linear Data Structures and Linked Lists.vcxproj b/Linear Data Structures and Linked Lists/Linear Data Structures and Linked Lists.vcxproj new file mode 100644 index 0000000..c651e72 --- /dev/null +++ b/Linear Data Structures and Linked Lists/Linear Data Structures and Linked Lists.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {667cd8ac-8201-452c-8fe7-ec68b2afcd47} + LinearDataStructuresandLinkedLists + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/Linear Data Structures and Linked Lists/main.cpp b/Linear Data Structures and Linked Lists/main.cpp new file mode 100644 index 0000000..d23feeb --- /dev/null +++ b/Linear Data Structures and Linked Lists/main.cpp @@ -0,0 +1,6 @@ +#include + +int main() +{ + std::cout << "Hello, world!" << std::endl; +} diff --git a/Quicksort and Mergesort/Quicksort and Mergesort.cpp b/Quicksort and Mergesort/Quicksort and Mergesort.cpp index ff58e99..79c7d0a 100644 --- a/Quicksort and Mergesort/Quicksort and Mergesort.cpp +++ b/Quicksort and Mergesort/Quicksort and Mergesort.cpp @@ -1,84 +1,87 @@ -#include - -void PrintArr(int* arr, int size) -{ - for (int i = 0; i < size; i++) - { - std::cout << arr[i] << " "; - } - std::cout << std::endl; -} - -void ShuffleArr(int* arr, int size) -{ - size_t i; - for (i = 0; i < size - 1; i++) - { - size_t j = i + rand() / (RAND_MAX / (size - i) + 1); - int t = arr[j]; - arr[j] = arr[i]; - arr[i] = t; - } -} - -void Swap(int* a, int* b) -{ - int t = *a; - *a = *b; - *b = t; -} - -void CopyArr(int* source, int* target, int start, int end) -{ - for (int i = start; i < end; i++) - { - target[i] = source[i]; - } -} - - -void Merge(int* arr, int start, int mid, int end) -{ - std::cout << start << " " << mid << " " << end << std::endl; - int* leftHalf = new int[mid - start + 1]; - int* rightHalf = new int[end - mid]; - - CopyArr(arr, leftHalf, 0, mid); - CopyArr(arr, rightHalf, mid + 1, end); - - // merge together - int leftIndex = 0; - int rightIndex = 0; - for (int i = 0; i < end - start; i++) - { - - } - -} - -void MergeSort(int* arr, int start, int end) -{ - int mid = start + (start + end) / 2; - if (start >= end) - MergeSort(arr, start, mid); - MergeSort(arr, mid + 1, end); - Merge(arr, start, mid, end); -} - - -int main() -{ - int* arr = new int[100]; - for (int i = 0; i < 100; i++) - arr[i] = i; - - // MergeSort - std::cout << "Merge Sort" << std::endl; - ShuffleArr(arr, 100); - MergeSort(arr, 0, 100); - PrintArr(arr, 100); - - // QuickSort - ShuffleArr(arr, 100); - -} +#include + +void PrintArr(int* arr, int size) +{ + for (int i = 0; i < size; i++) + { + std::cout << arr[i] << " "; + } + std::cout << std::endl; +} + +void ShuffleArr(int* arr, int size) +{ + size_t i; + for (i = 0; i < size - 1; i++) + { + size_t j = i + rand() / (RAND_MAX / (size - i) + 1); + int t = arr[j]; + arr[j] = arr[i]; + arr[i] = t; + } +} + +void Swap(int* a, int* b) +{ + int t = *a; + *a = *b; + *b = t; +} + +void CopyArr(int* source, int* target, int start, int end) +{ + for (int i = start; i < end; i++) + { + target[i] = source[i]; + } +} + + +void Merge(int* arr, int start, int mid, int end) +{ + std::cout << start << " " << mid << " " << end << std::endl; + int* leftHalf = new int[mid - start + 1]; + int* rightHalf = new int[end - mid]; + + CopyArr(arr, leftHalf, 0, mid); + CopyArr(arr, rightHalf, mid + 1, end); + + // merge together + int leftIndex = 0; + int rightIndex = 0; + for (int i = 0; i < end - start; i++) + { + + } + delete[] leftHalf; + delete[] rightHalf; +} + +void MergeSort(int* arr, int start, int end) +{ + int mid = (end - start) + (end / 2); + if (start < end) + { + MergeSort(arr, start, mid); + MergeSort(arr, mid + 1, end); + } + Merge(arr, start, mid, end); +} + + +int main() +{ + int* arr = new int[100]; + for (int i = 0; i < 100; i++) + arr[i] = i; + + // MergeSort + std::cout << "Merge Sort" << std::endl; + ShuffleArr(arr, 100); + MergeSort(arr, 0, 100); + PrintArr(arr, 100); + + // QuickSort + ShuffleArr(arr, 100); + +}