1、選擇排序
就是將數組從第一個元素開始,依次與后面的元素進行比較,再將比較的最值替換。
1 public class Demo{ 2 public static void main(String[] args) { 3 int[] arry= {15,2,0,6,-3,49}; 4 printArray(arry); 5 selectSort(arry); 6 printArray(arry); 7 } 8 9 //打印數組 10 public static void printArray(int[] arr) { 11 System.out.print("["); 12 for(int x=0;x<arr.length;x++) { 13 if(x!=arr.length-1) 14 System.out.print(arr[x]+","); 15 else 16 System.out.println(arr[x]+"]"); 17 } 18 } 19 //對數組進行選擇排序(從小到大) 20 public static void selectSort(int[] arr) { 21 for(int x=0;x<arr.length-1;x++) { 22 for(int y=x+1;y<arr.length;y++) { 23 if(arr[x]>arr[y]) { 24 int temp=arr[x]; 25 arr[x]=arr[y]; 26 arr[y]=temp; 27 } 28 } 29 } 30 } 31 32 }
2、冒泡排序:
基礎太差,智商跟不上,昨天看着代碼想了半天^_^
1 public class Demo 2 { 3 public static void main(String[] args) 4 { 5 int[] arr= {12,6,0,-9,66,35}; 6 int[] arr1= {222,55,-9,0,103}; 7 mSort1(arr); 8 mSort2(arr1); 9 printArry(arr); 10 System.out.println(); 11 printArry(arr1); 12 } 13 public static void printArry(int[] arr) 14 { 15 for(int i=0;i<arr.length;i++) 16 { 17 System.out.print(arr[i]+" "); 18 } 19 } 20 //冒泡排序 有兩種寫法,都是從小到大排序 21 public static void mSort1(int[] arr) 22 { 23 for(int x=0;x<arr.length-1;x++) 24 { 25 for(int y=0;y<arr.length-1-x;y++) 26 { 27 if(arr[y]>arr[y+1]) 28 { 29 int temp=arr[y]; 30 arr[y]=arr[y+1]; 31 arr[y+1]=temp; 32 } 33 } 34 } 35 } 36 public static void mSort2(int[] arr) 37 { 38 for(int x=arr.length-1;x>0;x--) 39 { 40 for(int y=0;y<x;y++) 41 { 42 if(arr[y]>arr[y+1]) 43 { 44 int temp=arr[y]; 45 arr[y]=arr[y+1]; 46 arr[y+1]=temp; 47 } 48 } 49 } 50 } 51 }
1 public class Demo 2 { 3 public static void main(String[] args) 4 { 5 int[] arr= {12,6,0,-9,66,35}; 6 int[] arr1= {222,55,-9,0,103}; 7 mSort1(arr); 8 mSort2(arr1); 9 printArry(arr); 10 System.out.println(); 11 printArry(arr1); 12 } 13 public static void printArry(int[] arr) 14 { 15 for(int i=0;i<arr.length;i++) 16 { 17 System.out.print(arr[i]+" "); 18 } 19 } 20 //交換數組中數值的函數 21 public static void swapArray(int[] arr,int a,int b) //想要改變數組中的值,必須將數組作為參數傳過來 22 { 23 int temp=arr[a]; 24 arr[a]=arr[b]; 25 arr[b]=temp; 26 } 27 //冒泡排序 有兩種寫法,都是從小到大排序 28 public static void mSort1(int[] arr) 29 { 30 for(int x=0;x<arr.length-1;x++) 31 { 32 for(int y=0;y<arr.length-1-x;y++) 33 { 34 if(arr[y]>arr[y+1]) 35 { 36 swapArray(arr,y,y+1); 37 /* 38 int temp=arr[y]; 39 arr[y]=arr[y+1]; 40 arr[y+1]=temp; 41 */ 42 } 43 } 44 } 45 } 46 public static void mSort2(int[] arr) 47 { 48 for(int x=arr.length-1;x>0;x--) 49 { 50 for(int y=0;y<x;y++) 51 { 52 if(arr[y]>arr[y+1]) 53 { 54 int temp=arr[y]; 55 arr[y]=arr[y+1]; 56 arr[y+1]=temp; 57 } 58 } 59 } 60 } 61 }
上面增加了一個交換數組中函數值的函數。