diff options
Diffstat (limited to 'hw3/merger.c')
-rw-r--r-- | hw3/merger.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/hw3/merger.c b/hw3/merger.c index 18f383e..e3a732f 100644 --- a/hw3/merger.c +++ b/hw3/merger.c @@ -72,8 +72,9 @@ static void* task_merge (void* md_generic) { int j = md->mid, jend = md->end; int k = 0; + int_least32_t dup_num = s[i]; int dup_count = 0; - bool is_dup; + bool is_dup = false; while (i < iend && j < jend) { if (s[i] > s[j]) { @@ -85,9 +86,10 @@ static void* task_merge (void* md_generic) { i++, k++; is_dup = false; } else { - if (!is_dup) { + if (!is_dup || dup_num != s[i]) { dup_count++; } + dup_num = s[i]; t[k] = s[i]; i++, k++; t[k] = s[j]; |