From b2a38e9d9c6e917626b49e956892effceb3d0b18 Mon Sep 17 00:00:00 2001 From: zeromus Date: Tue, 24 May 2011 05:30:21 +0000 Subject: [PATCH] hand coded special purpose sorts are a bad idea. --- BizHawk.MultiClient/PlayMovie.cs | 64 +------------------------------- 1 file changed, 1 insertion(+), 63 deletions(-) diff --git a/BizHawk.MultiClient/PlayMovie.cs b/BizHawk.MultiClient/PlayMovie.cs index 5a99b5785b..3619822bbf 100644 --- a/BizHawk.MultiClient/PlayMovie.cs +++ b/BizHawk.MultiClient/PlayMovie.cs @@ -202,73 +202,11 @@ namespace BizHawk.MultiClient string columnName = MovieView.Columns[columnToOrder].Text; if (sortedCol.CompareTo(columnName) != 0) sortReverse = false; - MergeSort(MovieList, 0, MovieList.Count, columnName); + MovieList.Sort((x, y) => x.CompareTo(y, columnName) * (sortReverse ? -1 : 1)); sortedCol = columnName; sortReverse = !(sortReverse); MovieView.Refresh(); } - private void MergeSort(List movieList, int low, int high, string parameter) - { - int sort = 1; - if (sortReverse) - sort = -1; - - if (high - low < 15) - InsertionSort(movieList, parameter); - else - { - int mid = Convert.ToInt32(((high - low) / 2) + low); - MergeSort(movieList, low, mid, parameter); - MergeSort(movieList, mid + 1, high, parameter); - - int trackLow = low; - int trackHigh = mid+1; - List sortedList = new List(); - for (int i = low; i <= high ; i++) - { - - if ((trackHigh > high) || (movieList[trackLow].CompareTo(movieList[trackHigh], parameter) == sort)) - { - sortedList.Add(movieList[trackLow]); - trackLow++; - } - else - { - sortedList.Add(movieList[trackHigh]); - trackHigh++; - } - } - - for (int i = low; i <= high; i++) - { - movieList[i] = sortedList[i]; - } - } - } - - private void InsertionSort(List smallList, string parameter) - { - int sort = 1; - if (sortReverse) - sort = -1; - - for (int i = 0; i < smallList.Count; i++) - { - int smallest = i; - for (int k = i + 1; k < smallList.Count; k++) - { - if (smallList[smallest].CompareTo(smallList[k], parameter) == sort) - smallest = k; - } - - if (i != smallest) - { - Movie temp = smallList[i]; - smallList[i] = smallList[smallest]; - smallList[smallest] = temp; - } - } - } } }