//3、
/*
* O(N*N), ,
* , , 。
*/
public void insertSort(int[] array){
int temp;
for (int i = 1; i < array.length; i++) {
temp = array[i];
int j = i-1;
for (; j>=0; j--) {
if(array[j]>temp){
array[j+1]=array[j];
}else {
break;
}
}
array[j+1]=temp;
}
//while
int in, out;
for(out=1; out<array.length; out++) // out is dividing line
{
int temp2 = array[out]; // remove marked item
in = out; // start shifts at out
while(in>0 && array[in-1] >= temp2) // until one is smaller,
{
array[in] = array[in-1]; // shift item to right
--in; // go left one position
}
array[in] = temp2; // insert marked item
} // end for
}