Skip to content

Instantly share code, notes, and snippets.

@mxmissile
Created August 2, 2021 14:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mxmissile/2f8086aca2bd4f6de1b363571ef281cd to your computer and use it in GitHub Desktop.
Save mxmissile/2f8086aca2bd4f6de1b363571ef281cd to your computer and use it in GitHub Desktop.
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