1. 程式人生 > >【Java】 大話資料結構(18) 排序演算法(5) (直接插入排序) 資料結構與演算法合集 資料結構與演算法合集

【Java】 大話資料結構(18) 排序演算法(5) (直接插入排序) 資料結構與演算法合集 資料結構與演算法合集

本文根據《大話資料結構》一書,實現了Java版的直接插入排序

更多:資料結構與演算法合集

基本概念

  直接插入排序思路:類似撲克牌的排序過程,從左到右依次遍歷,如果遇到一個數小於前一個數,則將該數插入到左邊所有比自己大的數之前,也就是說,將該數前面的所有更大的數字都後移一位,空出來的位置放入該數。

Java程式碼

	public void insertSort(int[] arr) {
		if(arr==null || arr.length<=0)
			return;
		for(int i=1;i<arr.length;i++) {
			if(arr[i]<arr[i-1]) {
				int temp=arr[i];
				int j=i;
				while(j>0 && temp<arr[j-1]) {
					arr[j]=arr[j-1];
					j--;
				}
				arr[j]=temp;
			}
		}
	}

  

複雜度分析

   空間複雜度:O(1)

  時間複雜度:O(n^2)

 

更多:資料結構與演算法合集