2012-03-01

Android 小程式 : 亂數與氣泡排序法

這一次我要挑戰用 Android 模擬器來完成以下的功能 :
以亂數產生10 組號碼 (0 ~ 99), 然後利用氣泡排序法以及降幕方式排列將結果顯示出來 !

運作原理 :
亂數產生的部分我使用 Math.random() 內建函數, 它會產生 0.0 ~ 0.1 的值, 由於其型態為 double, 我將它轉換型態成為 int 後, 讓它以整數型態呈現, 按下 [ 開始 ] 按鈕後產生 10 組亂數, 並同時進行排序, 程式中我用氣泡排序法, 讓數值由小到大排列.

第一次執行的畫面



按下開始鈕後的執行畫面

程式碼如下 :

import ... (略)

public class RndAndSort extends Activity {
    /** Called when the activity is first created. */
   
    int[] sort = new int[10];
    int rnd;
    String st,temp;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        final TextView textView1=(TextView)findViewById(R.id.textView1);
        final TextView textView2=(TextView)findViewById(R.id.textView2);
        final Button button1=(Button)findViewById(R.id.button1);
       
        button1.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                st = ""; temp = "";
                for (int i=0; i<10; i++) {
                    rnd = (int)(Math.random() * 100);
                    sort[i] = rnd;
                    temp = String.valueOf(rnd);
                    st += (temp + ", ");
                }
                textView1.setText(st);
               
                for (int i=0; i<9; i++)
                      for (int j=i+1; j<10; j++)
                        // 改變下式中的大、小於符號可變更排列順序
                        // < 由大到小, > 為小到大排列
                         if(sort[i]>sort[j])
                         {
                             int tempNum;
                             tempNum=sort[i];
                             sort[i]=sort[j];
                             sort[j]=tempNum;
                         }
                st = "";
                for (int i=0; i<10; i++)
                    st += (String.valueOf(sort[i]) + ", ");
                   
                textView2.setText(st);
            }
        });
    }
}

沒有留言:

張貼留言

搜尋此網誌