插入排序的基本思路:将要排序的数组分成两部分,每次从后面的数组部分中取出索引最小的数组元素,插入到前面数组部分的适当位置中。通常在开始排序时,将数组的第一个元素作为一组,后面的所有元素被当成另一组。
代码实现:
<span style="white-space:pre"> </span>public int[] insertionSort(int[] array) {
//把第一个元素看做一部分,第二个元素看做另一部分
//从第二部分中依次取出元素插入到第一部分中
for (int i = 1; i < array.length; i++) {
int temp = array[i];
int j = i-1;
//依次和i前面元素比较,寻找合适插入位置
while(temp < array[j]) {
array[j+1] = array[j];
j--;
if(j == -1) {
break;
}
}
//将插入元素插入到合适位置
array[j+1] = temp;
}
return array;
}