"S. Joseph" wrote:
>
> I'm new to Java.  I want to sort the data in reverse order but I don't
> understand the code and cannot tell where to modify it.  Please help.
>
>  /*
>   * MergeSort.java
> >  *
> >  * Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved.
> >  *
> >  * This software is the confidential and proprietary information of Sun
> >  * Microsystems, Inc. ("Confidential Information").  You shall not
> >  * disclose such Confidential Information and shall use it only in
> >  * accordance with the terms of the license agreement you entered into
> >  * with Sun.
> >  *
> >  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
> >  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
> >  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
> >  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
> >  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
> >  * THIS SOFTWARE OR ITS DERIVATIVES.
> >  *
> >  */
> >
> > /**
> >  * An implementation of MergeSort, needs to be subclassed to
> >  * compare the terms.
> >  *
> >  * @author Scott Violet
> >  */
> > public abstract class MergeSort extends Object {
> >     protected Object           toSort[];
> >     protected Object           swapSpace[];
> >
> >     public void sort(Object array[]) {
> >      if(array != null && array.length > 1)
> >      {
> >          int             maxLength;
> >
> >          maxLength = array.length;
> >          swapSpace = new Object[maxLength];
> >          toSort = array;
> >          this.mergeSort(0, maxLength - 1);
> >          swapSpace = null;
> >          toSort = null;
> >      }
> >     }
> >
> >     public abstract int compareElementsAt(int beginLoc, int endLoc);
> >
> >     protected void mergeSort(int begin, int end) {
> >      if(begin != end)
> >      {
> >          int           mid;
> >
> >          mid = (begin + end) / 2;
> >          this.mergeSort(begin, mid);
> >          this.mergeSort(mid + 1, end);
> >          this.merge(begin, mid, end);
> >      }
> >     }
> >
> >     protected void merge(int begin, int middle, int end) {
> >      int           firstHalf, secondHalf, count;
> >
> >      firstHalf = count = begin;
> >      secondHalf = middle + 1;
> >      while((firstHalf <= middle) && (secondHalf <= end))
> >      {
> >          if(this.compareElementsAt(secondHalf, firstHalf) < 0)
> >        swapSpace[count++] = toSort[secondHalf++];
> >          else
> >        swapSpace[count++] = toSort[firstHalf++];
> >      }
> >      if(firstHalf <= middle)
> >      {
> >          while(firstHalf <= middle)
> >        swapSpace[count++] = toSort[firstHalf++];
> >      }
> >      else
> >      {
> >          while(secondHalf <= end)
> >        swapSpace[count++] = toSort[secondHalf++];
> >      }
> >      for(count = begin;count <= end;count++)
> >          toSort[count] = swapSpace[count];
> >     }
> > }
> >

You do not need to modify it. All you have to do is to inherit it:

public class MyMergeSort extends MergeSort {

  public int compareElementsAt(int beginLoc, int endLoc) {
    // comparison criteria here
  }

}

and use it like here:

MyMergeSort sorter = new MyMergeSort();
sorter.sort(yourArray);

--
Regards,
Sergey Vorobiev

===========================================================================
To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST".
Some relevant FAQs on JSP/Servlets can be found at:

 http://java.sun.com/products/jsp/faq.html
 http://www.esperanto.org.nz/jsp/jspfaq.html
 http://www.jguru.com/jguru/faq/faqpage.jsp?name=JSP
 http://www.jguru.com/jguru/faq/faqpage.jsp?name=Servlets

Reply via email to