.Default;
22 | for (int counter = 0; counter < inputarray.Length - 1; counter++)
23 | {
24 | int index = counter + 1;
25 | while (index > 0)
26 | {
27 | // if we change the statement to .... < 0 it will sorted by descending.
28 | if (equalityComparer.Compare(inputarray[index - 1], inputarray[index]) > 0)
29 | {
30 | T temp = inputarray[index - 1];
31 | inputarray[index - 1] = inputarray[index];
32 | inputarray[index] = temp;
33 | }
34 | index--;
35 | }
36 | }
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/Insertio_Sort/Insertion_Sorting/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Insertion_Sorting")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Insertion_Sorting")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("859af954-4c51-49cf-9b0c-52c38ea06d62")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Merge_Sort/Merge_Sort.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Merge_Sort_Exampe_Uses_Recursion", "Merge_Sort_Exampe_Uses_Recursion\Merge_Sort_Exampe_Uses_Recursion.csproj", "{B90D4EA8-81B8-48A1-910B-EB7DD958F8F2}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {B90D4EA8-81B8-48A1-910B-EB7DD958F8F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {B90D4EA8-81B8-48A1-910B-EB7DD958F8F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {B90D4EA8-81B8-48A1-910B-EB7DD958F8F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {B90D4EA8-81B8-48A1-910B-EB7DD958F8F2}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | EndGlobal
23 |
--------------------------------------------------------------------------------
/Merge_Sort/Merge_Sort_Exampe_Uses_Recursion/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Merge_Sort/Merge_Sort_Exampe_Uses_Recursion/Merge_Sort_Exampe_Uses_Recursion.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {B90D4EA8-81B8-48A1-910B-EB7DD958F8F2}
8 | Exe
9 | Properties
10 | Merge_Sort_Exampe_Uses_Recursion
11 | Merge_Sort_Exampe_Uses_Recursion
12 | v4.5.2
13 | 512
14 | true
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
60 |
--------------------------------------------------------------------------------
/Merge_Sort/Merge_Sort_Exampe_Uses_Recursion/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 |
4 | #pragma warning disable 219
5 |
6 | namespace Merge_Sort_Exampe_Uses_Recursion
7 | {
8 | class Program
9 | {
10 | static void Main()
11 | {
12 | int[] array = new int[10000];
13 | Random rd = new Random();
14 | for (int i = 0; i < array.Length; i++)
15 | {
16 | array[i] = rd.Next(0, int.MaxValue);
17 | }
18 | Stopwatch timer = new Stopwatch();
19 | timer.Start();
20 | MergeSort(array);
21 | timer.Stop();
22 | Console.WriteLine(timer.Elapsed);
23 | Console.Read();
24 | }
25 |
26 | static void MergeSort(int[] array)
27 | {
28 | if (array.Length <= 1) return;
29 |
30 | int leftsize = array.Length / 2;
31 | int rightsize = array.Length - leftsize;
32 |
33 | int[] left = new int[leftsize];
34 | int[] right = new int[rightsize];
35 |
36 | Array.Copy(array, 0, left, 0, leftsize);
37 | Array.Copy(array, leftsize, right, 0, rightsize);
38 |
39 | MergeSort(left);
40 | MergeSort(right);
41 |
42 | Merge(array, left, right);
43 | }
44 |
45 | static void Merge(int[] array, int[] left, int[] right)
46 | {
47 | int leftindex = 0, rigthindex = 0, target = 0;
48 | int remaining = left.Length + right.Length;
49 |
50 | while (remaining > 0)
51 | {
52 | if (leftindex >= left.Length)
53 | {
54 | array[target] = right[rigthindex++];
55 | }
56 | else if (rigthindex >= right.Length)
57 | {
58 | array[target] = left[leftindex++];
59 | }
60 |
61 | else if (left[leftindex].CompareTo(right[rigthindex]) < 0)
62 | {
63 | array[target] = left[leftindex++];
64 | }
65 | else
66 | {
67 | array[target] = right[rigthindex++];
68 | }
69 |
70 | target++;
71 | remaining--;
72 | }
73 | }
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/Merge_Sort/Merge_Sort_Exampe_Uses_Recursion/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Merge_Sort_Exampe_Uses_Recursion")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Merge_Sort_Exampe_Uses_Recursion")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("b90d4ea8-81b8-48a1-910b-eb7dd958f8f2")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # C# 6.0 Visual Studio 2015 Enterprice edition with .NET Framework 4.6
2 |
3 | Sorting examples on C#.
4 | ## Attention all extension methods are generic and including their summary, and it seen by intellisense. :v:
5 |
6 | Sorting library with generics -> [Download](https://codeload.github.com/narekye/Sorting_Examples/zip/master)
7 |
8 |
9 | [Bubble sorting](https://github.com/narekye/Sorting_Examples/tree/master/Bubble_Sorting)
10 | [Binary search](https://github.com/narekye/Sorting_Examples/tree/master/Binary_Search)
11 | [Insertion sort](https://github.com/narekye/Sorting_Examples/tree/master/Insertio_Sort)
12 | [Merge sort](https://github.com/narekye/Sorting_Examples/tree/master/Merge_Sort)
13 |
14 |
--------------------------------------------------------------------------------
/Sorting_Library/Sorting_Library.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sorting_Library", "Sorting_Library\Sorting_Library.csproj", "{C6C56894-9E12-40A3-8612-A99FCB3DFB9E}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testing", "Testing\Testing.csproj", "{A8207F26-1F48-4CFB-A493-04D211D07396}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {C6C56894-9E12-40A3-8612-A99FCB3DFB9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {C6C56894-9E12-40A3-8612-A99FCB3DFB9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {C6C56894-9E12-40A3-8612-A99FCB3DFB9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {C6C56894-9E12-40A3-8612-A99FCB3DFB9E}.Release|Any CPU.Build.0 = Release|Any CPU
20 | {A8207F26-1F48-4CFB-A493-04D211D07396}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {A8207F26-1F48-4CFB-A493-04D211D07396}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {A8207F26-1F48-4CFB-A493-04D211D07396}.Release|Any CPU.ActiveCfg = Release|Any CPU
23 | {A8207F26-1F48-4CFB-A493-04D211D07396}.Release|Any CPU.Build.0 = Release|Any CPU
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | EndGlobal
29 |
--------------------------------------------------------------------------------
/Sorting_Library/Sorting_Library/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Sorting_Library")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Sorting_Library")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("c6c56894-9e12-40a3-8612-a99fcb3dfb9e")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Sorting_Library/Sorting_Library/Sorting_Library.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {C6C56894-9E12-40A3-8612-A99FCB3DFB9E}
8 | Library
9 | Properties
10 | Sorting_Library
11 | Sorting_Library
12 | v4.5.2
13 | 512
14 |
15 |
16 | true
17 | full
18 | false
19 | bin\Debug\
20 | DEBUG;TRACE
21 | prompt
22 | 4
23 |
24 |
25 | pdbonly
26 | true
27 | bin\Release\
28 | TRACE
29 | prompt
30 | 4
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
54 |
--------------------------------------------------------------------------------
/Sorting_Library/Sorting_Library/Sortings.cs:
--------------------------------------------------------------------------------
1 | namespace Sorting_Library
2 | {
3 | using System;
4 | using System.Collections.Generic;
5 |
6 | ///
7 | /// Perform own sorting algorithm with extension methods
8 | /// Generic types included to all algorithms.
9 | ///
10 | public static class Sortings
11 | {
12 | ///
13 | /// Bubble Sorting, best and worst cases pasted in text below for Big - O
14 | /// Hardest: O(n) , O(n^2) , O(n^2)
15 | /// Memory: O(1) , O(1) , O(1)
16 | ///
17 | ///
18 | ///
19 | /// void
20 | #region Bubble
21 | public static void PerformBubbleSort(this T[] array)
22 | {
23 | var equalityComparer = Comparer.Default;
24 | for (int i = 0; i < array.Length; i++)
25 | {
26 | for (int j = 0; j < array.Length - 1; j++)
27 | {
28 | if (equalityComparer.Compare(array[j], array[j + 1]) > 0) // array[j] > array[j + 1]
29 | {
30 | Swap(ref array[j], ref array[j + 1]);
31 | }
32 | }
33 | }
34 | }
35 |
36 | private static void Swap(ref T x, ref T y)
37 | {
38 | Comparer comparer = Comparer.Default;
39 | if (comparer.Compare(x, y) == 0) return;
40 | T temp = x;
41 | x = y;
42 | y = temp;
43 | }
44 | #endregion Bubble
45 |
46 | ///
47 | /// Insertion Sorting, best and worst cases pasted in text below for Big - O
48 | /// Hardest: O(n) , O(n^2) , O(n^2)
49 | /// Memory: O(1) , O(1) , O(1)
50 | ///
51 | ///
52 | ///
53 | /// void
54 | #region Insertion
55 | public static void PerformInsertionSort(this T[] array, Comparer comparer = null)
56 | {
57 | var equalityComparer = comparer ?? Comparer.Default;
58 | for (int counter = 0; counter < array.Length - 1; counter++)
59 | {
60 | int index = counter + 1;
61 | while (index > 0)
62 | {
63 | // if we change the statement to .... < 0 it will sorted by descending.
64 | if (equalityComparer.Compare(array[index - 1], array[index]) > 0)
65 | {
66 | T temp = array[index - 1];
67 | array[index - 1] = array[index];
68 | array[index] = temp;
69 | }
70 | index--;
71 | }
72 | }
73 | }
74 | #endregion
75 |
76 | ///
77 | /// Merge Sorting, best and worst cases pasted in text below for Big - O
78 | /// Using recursion for cutting the array to subarrays.
79 | /// Hardest: O(n log n) , O(n log n) , O(n log n)
80 | /// Memory: O(n) , O(n) , O(n)
81 | ///
82 | ///
83 | ///
84 | /// void
85 | #region Merge
86 |
87 | public static void PerformMergeSort(this T[] array)
88 | {
89 | if (array.Length <= 1) return;
90 |
91 | int leftsize = array.Length / 2;
92 | int rightsize = array.Length - leftsize;
93 |
94 | T[] left = new T[leftsize];
95 | T[] right = new T[rightsize];
96 |
97 | Array.Copy(array, 0, left, 0, leftsize);
98 | Array.Copy(array, leftsize, right, 0, rightsize);
99 |
100 | PerformMergeSort(left);
101 | PerformMergeSort(right);
102 |
103 | Merge(array, left, right);
104 | }
105 |
106 | private static void Merge(T[] array, T[] left, T[] right, Comparer comparer = null)
107 | {
108 | var equalitycomparer = comparer ?? Comparer.Default;
109 | int leftindex = 0, rigthindex = 0, target = 0;
110 | int remaining = left.Length + right.Length;
111 |
112 | while (remaining > 0)
113 | {
114 | if (leftindex >= left.Length)
115 | {
116 | array[target] = right[rigthindex++];
117 | }
118 | else if (rigthindex >= right.Length)
119 | {
120 | array[target] = left[leftindex++];
121 | }
122 |
123 | else if (equalitycomparer.Compare(left[leftindex], right[rigthindex]) < 0)
124 | {
125 | array[target] = left[leftindex++];
126 | }
127 | else
128 | {
129 | array[target] = right[rigthindex++];
130 | }
131 |
132 | target++;
133 | remaining--;
134 | }
135 | }
136 | #endregion
137 |
138 | ///
139 | /// Selection Sorting, best and worst cases pasted in text below for Big - O
140 | /// Hardest: O(n) , O(n^2) , O(n^2)
141 | /// Memory: O(1) , O(1) , O(1)
142 | ///
143 | ///
144 | ///
145 | /// void
146 | #region Selection
147 | public static void PerformSelectionSort(this T[] array)
148 | {
149 | int sortedRangeEnd = 0;
150 | while (sortedRangeEnd < array.Length)
151 | {
152 | int nextSmallestIndex = FindIndex(array, sortedRangeEnd);
153 | Swap(array, sortedRangeEnd, nextSmallestIndex);
154 | sortedRangeEnd++;
155 | }
156 | }
157 |
158 | private static void Swap(T[] array, int left, int right)
159 | {
160 | if (left == right) return;
161 | T temp = array[left];
162 | array[left] = array[right];
163 | array[right] = temp;
164 |
165 | }
166 | private static int FindIndex(T[] array, int index)
167 | {
168 | Comparer equality = Comparer.Default;
169 | T current = array[index];
170 | int currentindex = index;
171 | for (int i = index + 1; i < array.Length; i++)
172 | {
173 | if (equality.Compare(current, array[i]) > 0)
174 | {
175 | current = array[i];
176 | currentindex = i;
177 | }
178 | }
179 | return currentindex;
180 | }
181 | #endregion
182 |
183 | ///
184 | ///
185 | ///
186 | ///
187 | ///
188 | #region Quick
189 | public static void PerformQuickSort(this T[] array) { }
190 | #endregion
191 | }
192 | }
193 |
--------------------------------------------------------------------------------
/Sorting_Library/Testing/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Sorting_Library/Testing/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Sorting_Library;
3 |
4 | namespace Testing
5 | {
6 | class Program
7 | {
8 | static void Main()
9 | {
10 | int[] arr = { 3, 1, 3, 4, 6, 2, 3, 1, 4, 4 };
11 | arr.PerformBubbleSort();
12 | arr.PerformSelectionSort();
13 | arr.PerformInsertionSort();
14 | arr.PerformMergeSort();
15 | foreach (int i in arr)
16 | {
17 | Console.WriteLine(i);
18 | }
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Sorting_Library/Testing/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Testing")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Testing")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("a8207f26-1f48-4cfb-a493-04d211d07396")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/Sorting_Library/Testing/Testing.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {A8207F26-1F48-4CFB-A493-04D211D07396}
8 | Exe
9 | Properties
10 | Testing
11 | Testing
12 | v4.5.2
13 | 512
14 | true
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 |
26 |
27 | AnyCPU
28 | pdbonly
29 | true
30 | bin\Release\
31 | TRACE
32 | prompt
33 | 4
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 | {c6c56894-9e12-40a3-8612-a99fcb3dfb9e}
55 | Sorting_Library
56 |
57 |
58 |
59 |
66 |
--------------------------------------------------------------------------------