java排序演算法—選擇排序(二)
阿新 • • 發佈:2018-12-27
選擇排序
選擇排序的思想方法:快速排序的思想非常直接,正如名字一樣,將要排序的資料元素選出最小的,將它和資料元素的首位交換位置。再次從剩下的資料元素中 找到最小的元素,放到第二個位置上……以此類推,直到將整個資料元素排序。
程式碼實現
public class selectSort { private int arr[]; private int length; public selectSort(int a){ arr=new int[a]; length=0; } //顯示 public void show(){ for (int s=0;s<length;s++){ System.out.print(arr[s]+" "); } System.out.println(" "); } //插入 public void insert(int i){ arr[length]=i; length++; } //排序 public void sort(){ int i,j,min; for(i=0;i<length-1;i++){ //外層迴圈,i表示當前最小值的下標 min=i; //假設第一位為最小 for (j=i+1;j<length;j++){ if (arr[j]<arr[min]){ min=j; //從i+1開始,找出剩餘的lenth-i的元素中最小的值賦給min } } swap(min,i); //將min換到i的位置上 } } //交換 public void swap(int m,int n){ int temp=arr[m]; arr[m]=arr[n]; arr[n]=temp; } }
測試類
public class selectSortApp { public static void main(String args[]){ selectSort arr; arr=new selectSort(10); arr.insert(5); arr.insert(2); arr.insert(1); arr.insert(8); arr.insert(3); arr.insert(4); System.out.print("排序前陣列為:"); arr.show(); System.out.print("排序後陣列為:"); arr.sort(); arr.show(); } }
執行結果: