Java Array Merge merge(long[] theArray, long[] workSpace, int lowPtr, int highPtr, int upperBound)

Here you can find the source of merge(long[] theArray, long[] workSpace, int lowPtr, int highPtr, int upperBound)

Description

merge

License

Open Source License

Declaration

static private void merge(long[] theArray, long[] workSpace, int lowPtr, int highPtr, int upperBound) 

Method Source Code

//package com.java2s;
/***********************************************************************
    /*  w w  w.j  a va2s . c om*/
   This file is part of KEEL-software, the Data Mining tool for regression, 
   classification, clustering, pattern mining and so on.
    
   Copyright (C) 2004-2010
       
   F. Herrera (herrera@decsai.ugr.es)
L. S?nchez (luciano@uniovi.es)
J. Alcal?-Fdez (jalcala@decsai.ugr.es)
S. Garc?a (sglopez@ujaen.es)
A. Fern?ndez (alberto.fernandez@ujaen.es)
J. Luengo (julianlm@decsai.ugr.es)
    
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
    
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
    
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see http://www.gnu.org/licenses/
      
**********************************************************************/

public class Main {
    static private void merge(long[] theArray, long[] workSpace, int lowPtr, int highPtr, int upperBound) {
        int j = 0; // workspace index
        int lowerBound = lowPtr;
        int mid = highPtr - 1;
        int n = upperBound - lowerBound + 1; // # of items

        while (lowPtr <= mid && highPtr <= upperBound)
            if (theArray[lowPtr] < theArray[highPtr])
                workSpace[j++] = theArray[lowPtr++];
            else
                workSpace[j++] = theArray[highPtr++];

        while (lowPtr <= mid)
            workSpace[j++] = theArray[lowPtr++];

        while (highPtr <= upperBound)
            workSpace[j++] = theArray[highPtr++];

        for (j = 0; j < n; j++)
            theArray[lowerBound + j] = workSpace[j];
    }

    static private void merge(double[] theArray, double[] workSpace, int lowPtr, int highPtr, int upperBound) {
        int j = 0; // workspace index
        int lowerBound = lowPtr;
        int mid = highPtr - 1;
        int n = upperBound - lowerBound + 1; // # of items

        while (lowPtr <= mid && highPtr <= upperBound)
            if (theArray[lowPtr] < theArray[highPtr])
                workSpace[j++] = theArray[lowPtr++];
            else
                workSpace[j++] = theArray[highPtr++];

        while (lowPtr <= mid)
            workSpace[j++] = theArray[lowPtr++];

        while (highPtr <= upperBound)
            workSpace[j++] = theArray[highPtr++];

        for (j = 0; j < n; j++)
            theArray[lowerBound + j] = workSpace[j];
    }
}

Related

  1. merge(int[] a, int[] temp, int fromIndex, int toIndex)
  2. merge(int[] array, int i, int mid, int max)
  3. merge(int[] array1, int[] array2)
  4. merge(int[] x1, int[] x2)
  5. merge(int[]... arrs)
  6. merge(Object[][] array1, Object[][] array2)
  7. merge(String array[], String delimiter)
  8. merge(String[] array)
  9. merge(String[] array1, String[] array2)