public void insertSort(int[] arr) {
int size = arr.length;
for(int i = 1; i<size;i++){
if(arr[i] < arr[i-1]) {
int tmp = arr[i];
int j = i-1;
while(j >= 0 && arr[j] > tmp) {
arr[j+1] = arr[j];
j--;
}
arr[j+1]=tmp;
}
}
}
描述:将待排序的记录集合的第一条按照值的大小插入前面已经排序好的序列中,然后按照同样的同步执行待排序集合的下一条数据
时间复杂度为O(n^2)
插入排序为稳定排序:
判断是否为稳定排序要看相等元素是否保持了原有的顺序