This is most certainly not the recommended way of implementing QuickSort, it assumes there are no duplicates, but it should work:

private IList<int> sort(IList<int> a)
{
if (a.Count <= 1)
return a;
return sort(a.Where(x => x < a[0]).ToList()).Union(new List<int> { a[0] }).Union(sort(a.Where(x => x > a[0]).ToList())).ToList();
}

It's a nice demonstration of how C# is getting closer to resemble a proper lambda-oriented functional language.

Tags: computers
Categories: None |

1 comment has been posted.

###### Oct. 17, 2011, 12:41 a.m. - Arran Ubels  ¶
Hah. Nice to know there are other people that do too many things in LINQ one liners. :P