summaryrefslogtreecommitdiffstats
path: root/hw3/merger.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw3/merger.c')
-rw-r--r--hw3/merger.c6
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];