package exercise01;
public class InsertionSort {
/*
步骤:
1.从第一个元素开始,该元素可以认为已经被排序
2.取下一个元素temp,从已排序的元素序列从后往前扫描
3.如果该元素大于temp,则将该元素移到下一位
4.重复步骤3,直到找到已排序元素中小于等于temp的元素
5.temp插入到该元素的后面,如果已排序所有元素都大于temp,则将temp插入到下标为0的位置
6.重复步骤2~5
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arrays = { 10, 52, 13, 54, 35, 67, 37, 88, 39, 180 };
insertionSort(arrays);
for (int array : arrays) {
System.out.println(array);
}
}
public static void insertionSort(int []arrays){
for(int i=0;i<arrays.length-1;i++){
//记录有序序列最后一给元素的下标
int end = i;
//待插入的元素
int temp = arrays[end+1];
//找到比待插入的数小的那个数,并取得下标
while(end >= 0){
//比插入的数大就往后移,直到前面的数比插入的数小为止
if(temp<arrays[end]){
arrays[end+1]=arrays[end];
end--;//插入的数是跟前面的数比较
}
else{
//前面的数比插入的数小时跳出循环
break;
}
}
//将待插入的数:temp,放在比待插入数小的那个数后面
arrays[end+1] = temp;
}
}
}
插入排序。
最新推荐文章于 2024-09-07 23:04:24 发布