home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 139 / dpcs0999.iso / Web / CFserver / data1.cab / Java / netscape / util / Sort.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-12  |  1.9 KB  |  146 lines

  1. package netscape.util;
  2.  
  3. public class Sort {
  4.    private Sort() {
  5.       throw new Error("All methods on Sort are static, do not call new Sort().");
  6.    }
  7.  
  8.    private static Object[] upperCaseStrings(Object[] var0) {
  9.       int var2 = var0.length;
  10.       Object[] var3 = new Object[var2];
  11.  
  12.       for(int var1 = 0; var1 < var2; ++var1) {
  13.          String var4 = (String)var0[var1];
  14.          if (var4 != null) {
  15.             var3[var1] = ((String)var0[var1]).toUpperCase();
  16.          }
  17.       }
  18.  
  19.       return var3;
  20.    }
  21.  
  22.    public static void sort(Object[] var0, Object[] var1, int var2, int var3, boolean var4) {
  23.       if (var3 > 1) {
  24.          if (var0[0] instanceof String) {
  25.             quickSortStrings(var0, var1, var2, var2 + var3 - 1, var4);
  26.          } else {
  27.             quickSort(var0, var1, var2, var2 + var3 - 1, var4);
  28.          }
  29.       }
  30.    }
  31.  
  32.    public static void sortStrings(Object[] var0, int var1, int var2, boolean var3, boolean var4) {
  33.       if (var4) {
  34.          sort(upperCaseStrings(var0), var0, var1, var2, var3);
  35.       } else {
  36.          sort(var0, (Object[])null, var1, var2, var3);
  37.       }
  38.    }
  39.  
  40.    private static void quickSortStrings(Object[] var0, Object[] var1, int var2, int var3, boolean var4) {
  41.       if (var0.length > 1) {
  42.          int var5 = var2;
  43.          int var6 = var3;
  44.          String var7 = (String)var0[(var2 + var3) / 2];
  45.  
  46.          do {
  47.             if (var4) {
  48.                while(var5 < var3 && var7.compareTo((String)var0[var5]) > 0) {
  49.                   ++var5;
  50.                }
  51.  
  52.                while(var6 > var2 && var7.compareTo((String)var0[var6]) < 0) {
  53.                   --var6;
  54.                }
  55.             } else {
  56.                while(var5 < var3 && var7.compareTo((String)var0[var5]) < 0) {
  57.                   ++var5;
  58.                }
  59.  
  60.                while(var6 > var2 && var7.compareTo((String)var0[var6]) > 0) {
  61.                   --var6;
  62.                }
  63.             }
  64.  
  65.             if (var5 < var6) {
  66.                Object var8 = var0[var5];
  67.                var0[var5] = var0[var6];
  68.                var0[var6] = var8;
  69.                if (var1 != null) {
  70.                   var8 = var1[var5];
  71.                   var1[var5] = var1[var6];
  72.                   var1[var6] = var8;
  73.                }
  74.             }
  75.  
  76.             if (var5 <= var6) {
  77.                ++var5;
  78.                --var6;
  79.             }
  80.          } while(var5 <= var6);
  81.  
  82.          if (var2 < var6) {
  83.             quickSortStrings(var0, var1, var2, var6, var4);
  84.          }
  85.  
  86.          if (var5 < var3) {
  87.             quickSortStrings(var0, var1, var5, var3, var4);
  88.          }
  89.  
  90.       }
  91.    }
  92.  
  93.    private static void quickSort(Object[] var0, Object[] var1, int var2, int var3, boolean var4) {
  94.       if (var0.length > 1) {
  95.          int var5 = var2;
  96.          int var6 = var3;
  97.          Comparable var7 = (Comparable)var0[(var2 + var3) / 2];
  98.  
  99.          do {
  100.             if (var4) {
  101.                while(var5 < var3 && var7.compareTo((Comparable)var0[var5]) > 0) {
  102.                   ++var5;
  103.                }
  104.  
  105.                while(var6 > var2 && var7.compareTo((Comparable)var0[var6]) < 0) {
  106.                   --var6;
  107.                }
  108.             } else {
  109.                while(var5 < var3 && var7.compareTo((Comparable)var0[var5]) < 0) {
  110.                   ++var5;
  111.                }
  112.  
  113.                while(var6 > var2 && var7.compareTo((Comparable)var0[var6]) > 0) {
  114.                   --var6;
  115.                }
  116.             }
  117.  
  118.             if (var5 < var6) {
  119.                Object var8 = var0[var5];
  120.                var0[var5] = var0[var6];
  121.                var0[var6] = var8;
  122.                if (var1 != null) {
  123.                   var8 = var1[var5];
  124.                   var1[var5] = var1[var6];
  125.                   var1[var6] = var8;
  126.                }
  127.             }
  128.  
  129.             if (var5 <= var6) {
  130.                ++var5;
  131.                --var6;
  132.             }
  133.          } while(var5 <= var6);
  134.  
  135.          if (var2 < var6) {
  136.             quickSort(var0, var1, var2, var6, var4);
  137.          }
  138.  
  139.          if (var5 < var3) {
  140.             quickSort(var0, var1, var5, var3, var4);
  141.          }
  142.  
  143.       }
  144.    }
  145. }
  146.