パラメータ名はASCIIコードサイズ順にバブルアルゴリズムで実現


前のブログ署名アルゴリズム署名待ちパラメータフィールド名のASCIIコードサイズに従ってAndroid、JSで実装されたソート方法実装は、システムのapiを利用して実装されています.ここでは、下位アルゴリズムで実装したいと思います.
1.    api   
    String[] data = new String[]{"key", "ba","ba", "ac", "bb","bbc","ccce","ccc"};
    Arrays.sort(data);
    //System.out.println("compare***" + compare("bb", "bbc"));
    //System.out.println("compare***" + compare("ccce", "ccc"));
    //data = bubbleSort(data);
    for(String i:data){
        System.out.println("array i***" + i);
    }
    =》
    I/System.out: array i***ac
                  array i***ba
                  array i***ba
                  array i***bb
                  array i***bbc
                  array i***ccc
                  array i***ccce
                  array i***key


2.         
    /**
     *     
     */
    public String[] bubbleSort(String[] array) {
       if (array.length == 0)
            return array;
        for (int i = 0, l = array.length; i < l - 1; i++) {
            for (int j = 0; j < l - 1 - i; j++) {
                if (compare(array[j], array[j + 1]) == 1) {
                    String temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
        return array;
    }

   /**
     *   2 String    
     */
    public int compare(String o1, String o2) {
        //2    
        int length = Math.min(o1.length(), o2.length());
        for (int i = 0; i < length; i++) {
            if (o1.charAt(i) < o2.charAt(i)) {
                return -1;
            } else if (o1.charAt(i) > o2.charAt(i)) {
                return 1;
            }
        }
       //           2          ,       
         if (o1.length() < o2.length()) {
             return -1;
         } else if (o1.length() > o2.length()) {
             return 1;
         }else{
              return 0;
         }
    }

     String[] data = new String[]{"key", "ba", "ba", "ac", "bb", "bbc", "ccce", "ccc"};
    //Arrays.sort(data);
     System.out.println("compare***" + compare("bb", "bbc"));
      System.out.println("compare***" + compare("ccce", "ccc"));
      data = bubbleSort(data);
      for (String i : data) {
          System.out.println("array i***" + i);
      }

    I/System.out: compare***-1
                  compare***1
                  array i***ac
                  array i***ba
                  array i***ba
                  array i***bb
                  array i***bbc
                  array i***ccc
                  array i***ccce
                  array i***key

           ,    compare  (  2 String    ).