using System;
public class Test
{
public static decimal GetMedian(int[] array)
{
int[] tempArray = array;
int count = tempArray.Length;
Array.Sort(tempArray);
decimal medianValue = 0;
if (count % 2 == 0)
{
// count is even, need to get the middle two elements, add them together, then divide by 2
int middleElement1 = tempArray[(count / 2) - 1];
int middleElement2 = tempArray[(count / 2)];
medianValue = (middleElement1 + middleElement2) / 2;
}
else
{
// count is odd, simply get the middle element.
medianValue = tempArray[(count / 2)];
}
return medianValue;
}
public static void Main()
{
Console.Write("Median Value: ");
int[] items = new int[] {12, 5, 2, 16};
var median = GetMedian(items);
Console.WriteLine(median);
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyBkZWNpbWFsIEdldE1lZGlhbihpbnRbXSBhcnJheSkKCXsKCSAgICBpbnRbXSB0ZW1wQXJyYXkgPSBhcnJheTsKCSAgICBpbnQgY291bnQgPSB0ZW1wQXJyYXkuTGVuZ3RoOwoJCgkgICAgQXJyYXkuU29ydCh0ZW1wQXJyYXkpOwoJCgkgICAgZGVjaW1hbCBtZWRpYW5WYWx1ZSA9IDA7CgkKCSAgICBpZiAoY291bnQgJSAyID09IDApCgkgICAgewoJICAgICAgICAvLyBjb3VudCBpcyBldmVuLCBuZWVkIHRvIGdldCB0aGUgbWlkZGxlIHR3byBlbGVtZW50cywgYWRkIHRoZW0gdG9nZXRoZXIsIHRoZW4gZGl2aWRlIGJ5IDIKCSAgICAgICAgaW50IG1pZGRsZUVsZW1lbnQxID0gdGVtcEFycmF5Wyhjb3VudCAvIDIpIC0gMV07CgkgICAgICAgIGludCBtaWRkbGVFbGVtZW50MiA9IHRlbXBBcnJheVsoY291bnQgLyAyKV07CgkgICAgICAgIG1lZGlhblZhbHVlID0gKG1pZGRsZUVsZW1lbnQxICsgbWlkZGxlRWxlbWVudDIpIC8gMjsKCSAgICB9CgkgICAgZWxzZQoJICAgIHsKCSAgICAgICAgLy8gY291bnQgaXMgb2RkLCBzaW1wbHkgZ2V0IHRoZSBtaWRkbGUgZWxlbWVudC4KCSAgICAgICAgbWVkaWFuVmFsdWUgPSB0ZW1wQXJyYXlbKGNvdW50IC8gMildOwoJICAgIH0KCQoJICAgIHJldHVybiBtZWRpYW5WYWx1ZTsKCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCUNvbnNvbGUuV3JpdGUoIk1lZGlhbiBWYWx1ZTogIik7CgkJaW50W10gaXRlbXMgPSBuZXcgaW50W10gezEyLCA1LCAyLCAxNn07CgkJdmFyIG1lZGlhbiA9IEdldE1lZGlhbihpdGVtcyk7CgkJQ29uc29sZS5Xcml0ZUxpbmUobWVkaWFuKTsKCX0KfQ==