All pastes #965259 Raw Edit

merge

public cpp v1 · immutable
#965259 ·published 2008-03-31 21:23 UTC
rendered paste body
// This is the main DLL file.#include "stdafx.h"#include "Merges.h"using namespace Merges;    int* Merge::mergesort(int* values) {        int size = sizeof( values );        if (size <= 1) return values;        int* left = new int[size / 2];        int* right = new int[size / 2];        int* result = new int[size];        int middle = size / 2;        for (int i = 0; i < middle; i++) {            left[i] = values[i];        }        for (int i = middle; i < size; i++) {            right[i - middle] = values[i];        }        left = mergesort(left);        right = mergesort(right);        result = mergef(left, right);        return result;    }    int* Merge::mergef(int* left, int* right) {        int l = sizeof(left), r = sizeof(right), i = 0, j = 0, k = 0;        int* result = new int[l + r];        while (l > 0 && r > 0) {            if (left[i] <= right[j]) {                result[k] = left[i];                k++; i++; l--;            } else {                result[k] = right[j];                k++; j++; r--;            }        }        while (l > 0) {            result[k] = left[i];            k++; i++; l--;        }        while (r > 0) {            result[k] = right[j];            k++; j++; r--;        }        return result;    }