寻找插入位置与移动元素分开:
void insertSortBad(int list[],int n){
for (int i=1; i<n;i++){
int num = list[i],insert = i;
for(int j=i-1;j>-1;j-- ){
if( list[i] < list[j]){
insert = j;
}
}
for(int k=i; k>insert;k--){
list[k] = list[k-1];
}
list[insert] = num;
}
}
寻找插入位置与移动元素合并(代码更加简洁):
void insertSortGood(int list[],int n){
for (int i=1; i< n;i++){
int num = list[i],insert = i;
while(insert > 0 && num < list[insert-1] ){
list[insert] = list[insert-1];
insert --;
}
list[insert] = num;
}
}
哪个顺手用哪个,不必强求。