home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.pdx.edu / 2014.02.ftp.ee.pdx.edu.tar / ftp.ee.pdx.edu / oss / cvs-2004 / OpenHamLog / Attic / SortVector.java,v < prev    next >
Text File  |  2003-07-14  |  1KB  |  77 lines

  1. head    1.2;
  2. access;
  3. symbols;
  4. locks; strict;
  5. comment    @# @;
  6.  
  7.  
  8. 1.2
  9. date    2003.07.14.19.37.57;    author htodd;    state dead;
  10. branches;
  11. next    1.1;
  12.  
  13. 1.1
  14. date    2003.07.06.04.27.10;    author htodd;    state Exp;
  15. branches;
  16. next    ;
  17.  
  18.  
  19. desc
  20. @@
  21.  
  22.  
  23. 1.2
  24. log
  25. @Moving files and starting ant.
  26. @
  27. text
  28. @//: SortVector.java
  29. // A generic sorting vector
  30. import java.util.*;
  31.  
  32. public class SortVector extends Vector {
  33.   private Compare compare; // To hold the callback
  34.   public SortVector(Compare comp) {
  35.     compare = comp;
  36.   }
  37.   public void sort() {
  38.     quickSort(0, size() - 1);
  39.   }
  40.   private void quickSort(int left, int right) {
  41.     if(right > left) {
  42.       Object o1 = elementAt(right);
  43.       int i = left - 1;
  44.       int j = right;
  45.       while(true) {
  46.         while(compare.lessThan(
  47.               elementAt(++i), o1))
  48.           ;
  49.         while(j > 0)
  50.           if(compare.lessThanOrEqual(
  51.              elementAt(--j), o1))
  52.             break; // out of while
  53.         if(i >= j) break;
  54.         swap(i, j);
  55.       }
  56.       swap(i , right);
  57.       quickSort(left, i-1);
  58.       quickSort(i+1, right);
  59.     }
  60.   }
  61.   private void swap(int loc1, int loc2) {
  62.     Object tmp = elementAt(loc1);
  63.     setElementAt(elementAt(loc2), loc1);
  64.     setElementAt(tmp, loc2);
  65.   }
  66. } ///:~ 
  67. @
  68.  
  69.  
  70. 1.1
  71. log
  72. @Trying to sync.
  73. @
  74. text
  75. @@
  76.  
  77.