插入排序
public static int[] insertSort(int[] datas){
int n;
for(int i=1;i<datas.length;i++){
// 比较项
int m = datas[i];
int j = i-1;
while(j>=0){
// 依次取出比较项之前的所有位置值
n = datas[j];
if(m<n){
// 交换两者之间的位置
datas[j+1] = n;
datas[j] = m;
}
j--;
}
}
return datas;
}
比如,我们有一个数组int[] datas = {5,3,1,4,2};
3空出一个位置,然后和其上的位置5进行比较,得出35142
1空出一个位置,然后和5进行比较,得出31542
1空出一个位置,然后和3进行比较,得出13542
4空出一个位置,然后和5进行比较,得出13452
4空出一个位置,然后和3进行比较,不发生位置变化,13452
4空出一个位置,然后和1进行比较,不发生位置变化,13452
2空出一个位置,然后和5进行比较,得出13425
2空出一个位置,然后和4进行比较,得出13245
2空出一个位置,然后和3进行比较,得出12345
2空出一个位置,然后和1进行比较,不发生位置变化,得到最终结果 12345
总共比较了10次。