使用 App Inventor 實作「選擇排序法」
App Inventor

使用 App Inventor 實作「選擇排序法」

今天來介紹,如何使用 App Inventor 來實作選擇排序法



選擇排序法實作步驟:

1. 從索引值一開始 (通常是從索引碼為 0 開始,但是 Inventor 清單的第一項資料的索引碼為 1。),找出整個清單的最小值,然後跟索引碼一的值,進行交換,這樣第一輪結束最左邊的值就是最小的

2. 再來從索引碼二開始,找出整個清單的最小值,再和索引碼二的值做交換,這樣索引碼二的值就是第二小的資料,後面以此類推。



以底下的值為例:
3、5、2、1、6、4





1. 開啟一個新專案,需要用到的元件如下:



2. 切換到程式設計,新增變數及當按鈕點選的方塊如下:



3. 開始撰寫選擇排序法的程序方塊,需要兩個區域變數,ttempt 拿來暫時存放索引碼,temp 存要交換的資料。



4. 我們需要用到雙迴圈,首先先拉一個迴圈方塊 i,範圍從 1 到 清單長度減 1。



5. 第二個迴圈 j 放到 i 迴圈裡面,這個迴圈主要是在比較值的大小,如果索引碼 j 的資料比索引碼 t 的資料還小,就把索引碼 j 給變數 t



6. 接著再拉一個判斷的方塊,放在迴圈 j 的底下,如果變數 t 的值,和原來的不一樣,就將資料做交換。



7. 拖拉清單迴圈方塊,放在判斷方塊的底下,將每一輪交換完後的結果輸出。



至此,整個 App 已撰寫完畢!





App 完整程式碼:

aia 專案檔案下載



Java 版本程式碼:

public class SelectionSort {

	public static void main(String[] args) {
		
		int[] data = {3, 5, 2, 1, 6, 4};
		
		sort(data);
	}

	static void sort(int[] data) {
    	int t, temp;
    	
    	for(int i = 0;i < data.length - 1;i++) {
    		t = i;
    		
    		for(int j = i + 1;j < data.length;j++)
    			if(data[j] < data[t])
    				t = j;
    		
    		if(i != t) {
    			temp = data[i];
    			data[i] = data[t];
    			data[t] = temp;
    		}
    		
    		for(int k : data) 
        		System.out.print(" " + k);
        	System.out.println("");
    	}
    }
}


App 執行範例:




如果覺得文章內容還不錯的話,麻煩請幫我點個讚!感謝

可以多點幾次喔~~

第一次點讚需使用 Google 或 Facebook 帳號註冊

發表迴響