/**
* 直接插入排序从第二个元素开始
* 直接插入排序关键在于如何找到插入的位置(在找的过程向后移动排在它之后的元素
* @param list
*/
private static void insertSort(int[] list){
int i,j,temp;
//直接插入排序从第二个元素开始
for(i = 1; i < list.length; i++){
//插入的目标元素
temp = list[i];
for(j = i-1 ;j >= 0&& list[j] > temp; j--){
list[j+1] = list[j];
}
//j+1就是找到的插入位置,插入即可
list[j+1] = temp;
}
}
private static void shellSort(int[] list){
int gap = list.length/2;
int i,j,temp;
while(gap >=1){
for(i = gap ;i <list.length;i++){
temp = list[i];
for(j = i-gap ; j >=0 && list[j] > temp;j=j-gap){
list[j+gap] = list[j];
}
list[j+gap] =temp;
}
gap = gap/2;
}
}