using System.Collections;
public static void Main()
string[] highways = new string[]
Array.Sort(highways, new AlphanumComparatorFast());
foreach (string h in highways)
public class AlphanumComparatorFast : IComparer
public int Compare(object x, object y)
while (marker1 < len1 && marker2 < len2)
char[] space1 = new char[len1];
char[] space2 = new char[len2];
} while (char.IsDigit(ch1) == char.IsDigit(space1[0]));
} while (char.IsDigit(ch2) == char.IsDigit(space2[0]));
string str1 = new string(space1);
string str2 = new string(space2);
if (char.IsDigit(space1[0]) && char.IsDigit(space2[0]))
int thisNumericChunk = int.Parse(str1);
int thatNumericChunk = int.Parse(str2);
result = thisNumericChunk.CompareTo(thatNumericChunk);
result = str1.CompareTo(str2);