public class InsertSort {
public static int[] sort(int[] array){
int j;
//从下标为1的元素开始选择合适的位置插入,因为下标为0的只有一个元素,默认是有序的
for(int i = 1 ; i < array.length ; i++){
//记录要插入的数据,先把这个数据拿出来,之后前面的数组才可以有地方往后面挪
//给要插入的数据腾出地方
int tmp = array[i];
j = i;
//因为是j = i,所以temp本身就等于array[j],所以只能和他本身前面的比较,所以就是array[j - 1]
while(j > 0 && tmp < array[j-1]){//从已经排序的序列最右边的开始比较,找到比其小的数
array[j] = array[j-1];//向后挪动
j--;
}
array[j] = tmp;//存在比其小的数,插入
}
return array;
}
算法----插入排序InsertSort每一循环取一个元素插入到前面的有序数组中
最新推荐文章于 2021-11-08 09:33:08 发布