冒泡排序的一種實現

代碼如下

 

import java.util.ArrayList;

public class Sort {
 
  private ArrayList<Double> al=new ArrayList<Double>();
 /**
  * @param args
  */
  void init(){
    for(int i=0;i<5;i++){
     al.add(Math.random());
    }
   display();
  }
  void display(){
    int i=0;
    for(;i<al.size()-1;i++){
     System.out.print(al.get(i)+"  ");
    }
    System.out.println(al.get(i)); 
  }
  void maopao(){
    double temp;
    for(int i=0;i<al.size()-1;i++)
      for(int j=i+1;j<al.size();j++)
        if(al.get(i) > al.get(j)){
          temp=al.get(i);
          al.set(i, al.get(j));
          al.set(j, temp);
          display();
        }
    
   }
   public static void main(String[] args) {
     Sort st = new Sort();
     st.init();
     st.maopao();
   }

}

注意兩點:

1. java.util.Random與Math.random區別

      JDK API 1.6.0文檔描述
  java.lang.Math

  random()

  public static double random()

  返回帶正號的 double 值,該值大於等於 0.0 且小於 1.0。返回值是一個僞隨機選擇的數,在該範圍內(近似)均勻分佈。

  第一次調用該方法時,它將創建一個新的僞隨機數生成器,與以下表達式完全相同

  new java.util.Random

  之後,新的僞隨機數生成器可用於此方法的所有調用,但不能用於其他地方。

  此方法是完全同步的,可允許多個線程使用而不出現錯誤。但是,如果許多線程需要以極高的速率生成僞隨機數,那麼這可能會減少每個線程對擁有自己僞隨機數生成器的爭用。

  返回:

  大於等於 0.0 且小於 1.0 的僞隨機 double 值。

  java.util.Random

  此類的實例用於生成僞隨機數流。此類使用 48 位的種子,使用線性同餘公式 (linear congruential form) 對其進行了修改(請參閱 Donald Knuth 的The Art of Computer Programming, Volume 3,第 3.2.1 節)。

  如果用相同的種子創建兩個 Random 實例,則對每個實例進行相同的方法調用序列,它們將生成並返回相同的數字序列。爲了保證此屬性的實現,爲類 Random 指定了特定的算法。爲了 Java 代碼的完全可移植性,Java 實現必須讓類 Random 使用此處所示的所有算法。但是允許 Random 類的子類使用其他算法,只要其符合所有方法的常規協定即可。

  Random 類實現的算法使用一個 protected 實用工具方法,每次調用它最多可提供 32 個僞隨機生成的位。

  很多應用程序會發現Math.random()方法更易於使用。

 

2. 基本數據類型與封裝數據類型的轉換

Integer(int value)
          構造一個新分配的 Integer 對象,它表示指定的 int 值。
Integer(String s)
          構造一個新分配的 Integer 對象,它表示 String 參數所指示的 int 值。

int n=Integer.parseInt("");
將不是int類型的其他類型轉爲int類型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章