1. 程式人生 > >JAVA基礎(27)---插入排序

JAVA基礎(27)---插入排序

插入排序

插入排序和打牌一樣,拿到一個數和前面已有的數進行對比,比前面的數小就放到前面,舉例:4,2,5,1,7 : 

第一次內迴圈、拿到數a[1]=2,和a[0]=4進行對比,2小,換位置;

第二次內迴圈、拿到數5,和4比,位置不變,if判斷為false,則break,跳出內迴圈,進行下一次;

第三次內迴圈、拿到數1,和5比,交換位置,1在和4比,交換位置,最後和2比,再次交換位置,得到結果,1,2,4,5,7

 

public class InsertSort{

	public static  void  main(String[] args){
		int[] arr= {4,2,5,1,7};
		for(int i = 0 ; i < arr.length; i++){
			for(int j = i ; j > 0 ; j--  ){
				if(arr[j] < arr[j - 1]){
					swap(arr,j,j-1);
				}else{
					break;
				}
			
			}
		}
	for(int i = 0 ; i < arr.length ; i++){
		System.out.println(arr[i]);
	}


	}
	/*
	arr:元素所在的陣列
	a,b 分別代表要交換的兩個元素的下標
	
	*/
	public static swap(int[] arr , int a , int b){
		int temp = arr[a];
		arr[a] = arr[b];
		arr[b] = temp;
	
	}
}