//排序 選擇排序 數組中每個元素都進行比較 public class Test { public static void main(String[] args) { int[] arr = {12,69,852,25,89,588}; selectS(arr); printS(arr); } public static void printS(int[] arr){ for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } public static void selectS(int[] arr){ for(int i=0;i<arr.length;i++){ for(int j =i+1;j<arr.length;j++){ if(arr[i]>arr[j]){//如果i>j int tmp=arr[i];//i拿起來放在一個空里 i則空 arr[i]=arr[j];//j放在空的i里 j則空 arr[j]=tmp;//tmp(i)放在空的j里 //實現i和j比較 大的右移繼續比較 } } } } }
冒泡排序:
//冒泡排序 數組中跟相鄰的元素比較 比較矮大小 交換位置
原理:比較兩個相鄰的元素,將值大的元素交換至右端。
思路:依次比較相鄰的兩個數,將小數放在前面,大數放在后面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放后。然后比較第2個數和第3個數,將小數放前,大數放后,如此繼續,直至比較最后兩個數,將小數放前,大數放后。重復第一趟步驟,直至全部排序完成。
第一趟比較完成后,最后一個數一定是數組中最大的一個數,所以第二趟比較的時候最后一個數不參與比較;
第二趟比較完成后,倒數第二個數也一定是數組中第二大的數,所以第三趟比較的時候最后兩個數不參與比較;
依次類推,每一趟比較次數-1;
public class Test5 { public static void main(String[] args) { int[] arr = {12,2,25,89,5}; bubbleSort(arr); printArray(arr); } public static void bubbleSort(int[] arr){ for (int i = 0; i < arr.length-1; i++) { for(int j=0;j<arr.length-i-1;j++){ if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } public static void printArray(int[] arr){ for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
