neuer QuickSortDaniel

This commit is contained in:
Daniel Herrmann
2014-05-22 11:58:16 +02:00
parent 3f6a8eb9f0
commit 0828ee25fa

View File

@@ -11,44 +11,51 @@ namespace WorldOfPeacecraft
public QuickSortDaniel(IList<T> SortFiles) public QuickSortDaniel(IList<T> SortFiles)
{ {
this.SortFiles = SortFiles; this.SortFiles = SortFiles;
doSort(); doSort(0, SortFiles.Count-1);
} }
private void doSort() private void doSort(int start, int end)
{ {
int size = SortFiles.Count; if (start != end)
T pivot;
T comparer;
int pivotpos = 0;
int comppos = size - 1;
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; int size = SortFiles.Count;
SortFiles[comppos] = pivot; T pivot;
SortFiles[pivotpos] = comparer; T comparer;
pivotpos = comppos; int pivotpos = start;
comppos = tmp; 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() private IList<T> getSortedList()
{ {
return SortFiles; return SortFiles;