本文根据《大话数据结构》一书,实现了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)
更多:数据结构与算法合集