java算法之插入排序
1、插入排序的基本思想:
将一个数组分成两组,左边那组始终有序,每次取右边那组插入到左边适当的位置,保证左边有序,当右边没有需要插入的数据的时候,整个数组是有序的。插入排序是稳定排序。
2、算法描述:
a. 从第一个元素开始,该元素可以认为已经被排序;
b. 取出下一个元素,在已经排序的元素序列中从后向前扫描;
c. 如果该元素大于新元素,将该元素移到下一位置;
d. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
e. 将新元素插入到该位置后;
f. 重复步骤b-e;
3、代码:
public static void main(String[] args) {
int arr[] = {3,44,38,5,47,15,36,26,27,2,46,4,19,50,48};//定义一个数组
for (int i = 1; i < arr.length; i++) {//数组遍历
int temp = arr[i];//arr[i]拿出来
int index = i - 1;
while (index >= 0 && temp < arr[index]) {
arr[index + 1] = arr[index];//将arr[index]向后移动一位
index–;
}
arr[index + 1] = temp;//将temp的值插入适当位置
}
for (int e : arr) {
System.out.print(e+" ");
}
}