Skip to content

Commit

Permalink
Avoid *begin always being included in the sorted list regardless of i…
Browse files Browse the repository at this point in the history
…ts value.

This was a minor criticism by @zamar in the original pull request
#1065
necessitating a comment explanation.

No functional change.

Closes #1091
  • Loading branch information
mstembera authored and zamar committed May 8, 2017
1 parent 8b15961 commit 321a27f
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions src/movepick.cpp
Expand Up @@ -36,18 +36,16 @@ namespace {

// partial_insertion_sort() sorts moves in descending order up to and including
// a given limit. The order of moves smaller than the limit is left unspecified.
// To keep the implementation simple, *begin is always included in the sorted moves.
void partial_insertion_sort(ExtMove* begin, ExtMove* end, int limit) {

for (ExtMove *sortedEnd = begin + 1, *p = begin + 1; p < end; ++p)
for (ExtMove *sortedEnd = begin, *p = begin + 1; p < end; ++p)
if (p->value >= limit)
{
ExtMove tmp = *p, *q;
*p = *sortedEnd;
for (q = sortedEnd; q != begin && *(q-1) < tmp; --q)
*q = *(q-1);
*p = *++sortedEnd;
for (q = sortedEnd; q != begin && *(q - 1) < tmp; --q)
*q = *(q - 1);
*q = tmp;
++sortedEnd;
}
}

Expand Down

0 comments on commit 321a27f

Please sign in to comment.