Files
inf3/src/QuickSortDaniel.cs
2014-05-22 11:58:16 +02:00

68 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WorldOfPeacecraft
{
class QuickSortDaniel<T>
{
private IList<T> SortFiles;
public QuickSortDaniel(IList<T> SortFiles)
{
this.SortFiles = SortFiles;
doSort(0, SortFiles.Count-1);
}
private void doSort(int start, int end)
{
if (start != end)
{
int size = SortFiles.Count;
T pivot;
T comparer;
int pivotpos = start;
int comppos = end;
pivot = SortFiles[pivotpos];
comparer = SortFiles[comppos];
while (pivotpos != comppos)
{
do
{
if (comppos > pivotpos)
{
comppos = comppos - 1;
comparer = SortFiles[comppos];
}
else
{
comppos = comppos + 1;
comparer = SortFiles[comppos];
}
} while (pivot < comparer);
int tmp = comppos;
SortFiles[comppos] = pivot;
SortFiles[pivotpos] = comparer;
pivotpos = comppos;
comppos = tmp;
}
doSort(start, pivotpos-1);
doSort(pivotpos+1, end);
}
}
private IList<T> getSortedList()
{
return SortFiles;
}
}
}