Created
August 2, 2021 14:00
-
-
Save mxmissile/2f8086aca2bd4f6de1b363571ef281cd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class BrianAssessment | |
{ | |
public void show_merged_array_ascending_linq() | |
{ | |
// arrange | |
var array1 = new[] {1, 3, 5, 8}; | |
var array2 = new[] {0, 3, 3, 6, 9}; | |
// act | |
var ordered = array1.Concat(array2).OrderBy(x => x); | |
var actual = ordered.ToArray(); | |
// assert | |
var expected = new[] {0, 1, 3, 3, 3, 5, 6, 8, 9}; | |
Assert.Equal(expected, actual); | |
} | |
public void show_merged_array_descending_linq() | |
{ | |
var array1 = new[] {1, 3, 5, 8}; | |
var array2 = new[] {0, 3, 3, 6, 9}; | |
var ordered = array1.Concat(array2).OrderByDescending(x => x); // .Reverse() works here also | |
var actual = ordered.ToArray(); | |
var expected = new[] {9, 8, 6, 5, 3, 3, 3, 1, 0}; | |
Assert.Equal(expected, actual); | |
} | |
public void show_merged_array_ascending() | |
{ | |
var array1 = new[] {1, 3, 5, 8}; | |
var array2 = new[] {0, 3, 3, 6, 9}; | |
var merged = new int[array1.Length + array2.Length]; | |
for (var index = 0; index < array1.Length; index++) | |
{ | |
merged[index] = array1[index]; | |
} | |
for (var index = 0; index < array2.Length; index++) | |
{ | |
var mergedIndex = array1.Length + index; | |
merged[mergedIndex] = array2[index]; | |
} | |
Array.Sort(merged); | |
var expected = new[] {0, 1, 3, 3, 3, 5, 6, 8, 9}; | |
Assert.Equal(expected, merged); | |
} | |
public void show_merged_array_descending() | |
{ | |
var array1 = new[] {1, 3, 5, 8}; | |
var array2 = new[] {0, 3, 3, 6, 9}; | |
var merged = new int[array1.Length + array2.Length]; | |
for (var index = 0; index < array1.Length; index++) | |
{ | |
merged[index] = array1[index]; | |
} | |
for (var index = 0; index < array2.Length; index++) | |
{ | |
var mergedIndex = array1.Length + index; | |
merged[mergedIndex] = array2[index]; | |
} | |
Array.Sort(merged); | |
Array.Reverse(merged); | |
// assert | |
var expected = new[] {9, 8, 6, 5, 3, 3, 3, 1, 0}; | |
Assert.Equal(expected, merged); | |
} | |
public void show_merged_with_bubblesort() | |
{ | |
var array1 = new[] {1, 3, 5, 8}; | |
var array2 = new[] {0, 3, 3, 6, 9}; | |
var merged = new int[array1.Length + array2.Length]; | |
for (var index = 0; index < array1.Length; index++) | |
{ | |
merged[index] = array1[index]; | |
} | |
for (var index = 0; index < array2.Length; index++) | |
{ | |
var mergedIndex = array1.Length + index; | |
merged[mergedIndex] = array2[index]; | |
} | |
var mergedLength = merged.Length; | |
// bubble sort, should NEVER be needed again ever lol | |
for (var i1 = 0; i1 < mergedLength - 1; i1++) | |
{ | |
for (var i2 = 0; i2 < mergedLength - i1 - 1; i2++) | |
{ | |
if (merged[i2] <= merged[i2 + 1]) continue; | |
// swap elements | |
var temp = merged[i2]; | |
merged[i2] = merged[i2 + 1]; | |
merged[i2 + 1] = temp; | |
} | |
} | |
var expected = new[] {0, 1, 3, 3, 3, 5, 6, 8, 9}; | |
Assert.Equal(expected, merged); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment