【Java】 大話數據結構(18) 排序算法(5) (直接插入排序)

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

更多:數據結構與算法合集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)post

 

更多:數據結構與算法合集url

相關文章
相關標籤/搜索