No need to sort arrays of 1 element.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10899 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jcarsey
2010-09-28 18:57:40 +00:00
parent 2f6b90fbcd
commit 5dcb535512
2 changed files with 32 additions and 25 deletions

View File

@ -109,20 +109,23 @@ QuickSortWorker (
// Now recurse on 2 paritial lists. neither of these will have the 'pivot' element // Now recurse on 2 paritial lists. neither of these will have the 'pivot' element
// IE list is sorted left half, pivot element, sorted right half... // IE list is sorted left half, pivot element, sorted right half...
// //
QuickSortWorker( if (NextSwapLocation >= 2) {
BufferToSort, QuickSortWorker(
NextSwapLocation, BufferToSort,
ElementSize, NextSwapLocation,
CompareFunction, ElementSize,
Buffer); CompareFunction,
Buffer);
QuickSortWorker( }
(UINT8 *)BufferToSort + (NextSwapLocation+1) * ElementSize,
Count - NextSwapLocation - 1,
ElementSize,
CompareFunction,
Buffer);
if ((Count - NextSwapLocation - 1) >= 2) {
QuickSortWorker(
(UINT8 *)BufferToSort + (NextSwapLocation+1) * ElementSize,
Count - NextSwapLocation - 1,
ElementSize,
CompareFunction,
Buffer);
}
return; return;
} }
/** /**

View File

@ -118,19 +118,23 @@ QuickSortWorker (
// Now recurse on 2 paritial lists. neither of these will have the 'pivot' element // Now recurse on 2 paritial lists. neither of these will have the 'pivot' element
// IE list is sorted left half, pivot element, sorted right half... // IE list is sorted left half, pivot element, sorted right half...
// //
QuickSortWorker( if (NextSwapLocation >= 2) {
BufferToSort, QuickSortWorker(
NextSwapLocation, BufferToSort,
ElementSize, NextSwapLocation,
CompareFunction, ElementSize,
Buffer); CompareFunction,
Buffer);
}
QuickSortWorker( if ((Count - NextSwapLocation - 1) >= 2) {
(UINT8 *)BufferToSort + (NextSwapLocation+1) * ElementSize, QuickSortWorker(
Count - NextSwapLocation - 1, (UINT8 *)BufferToSort + (NextSwapLocation+1) * ElementSize,
ElementSize, Count - NextSwapLocation - 1,
CompareFunction, ElementSize,
Buffer); CompareFunction,
Buffer);
}
return; return;
} }