sorting algorithms in C#