本文根據《大話數據結構》一書,實現了Java版的直接插入排序。html
更多:數據結構與算法合集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