java插入排序

插入排序適合序列中已經有部分數據是已經排序過的狀態。

int[] a = {222,44,11,63,84,24,53,123,25,98,76,34};挨個讀取數組a中的每個元素,將它與前面的數做對比,如果比前面的小就將前面的數向後移,當移動停止時,將該數填充到空出的位置。

第一次:222前面沒有數不做變化。

第二次:44小於222,將222後移一位變成了{x,222,11,63,84,24,53,123,25,98,76,34},最後將44填充到x的位置(移動222後空出的位置),數組變成了{44,222,11,63,84,24,53,123,25,98,76,34}

第三次:11小於222,222向後移動一位變成{44,x,222,63,84,24,53,123,25,98,76,34},11再和44比較,11小於44,44向後移動一位變成{x,44,222,63,84,24,53,123,25,98,76,34}

                 再將11填寫到x的位置,變成{11,44,222,63,84,24,53,123,25,98,76,34}。

下面附上代碼:

import java.util.Arrays;


public class InsertSort {

	public static void main(String args[]){
		int[] a = {222,44,11,63,84,24,53,123,25,98,76,34};
		insertSort(a);
		System.out.println(Arrays.toString(a));
	}

	private static void insertSort(int[] a) {

		for(int i=1;i<a.length;i++){
			
			int temp = a[i]; 
			
			int index = i-1;
			while(index >=0 && temp < a[index]){
				a[index + 1] = a[index];
				index -- ;
			}
			a[index+1] = temp;
		}
		
	}
	
}


發佈了29 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章