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);
+
+}