插入排序:直接插入排序
直接插入排序思想:
直接插入排序(Straight Insertion Sort)是一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。
步骤:
L[ ]表示一个表,L()表示一个元素
1>查找出L(i)在L[1.....i-1]中的插入位置k
2>将L[k...i-1]中所有元素全部后移一个位置
3>将L(i)复制到L(k)
插入排序过程:
代码演示[以下使用的数组]:
package order;
import java.util.Arrays;
/**
* @Author YangHe
* @Date 2020/4/20 15:30
*/
public class OrderTest {
/**
* 直接插入排序
* @param array
*/
public static void insertSort(int[] array){
int i,j,temp;//设置岗哨
for(i=1;i<array.length;i++){
if(array[i]<array[i-1]){
temp=array[i]; //赋值给岗哨值
array[i]=array[i-1];
for(j=i-2;j>=0;j--){ //初始化i-1位置属于空缺
if(array[j]>temp){ //查找适合岗哨值的位置
array[j+1]=array[j];
}else{
break;
}
}
array[j+1]=temp;
}
System.out.println("第"+i+"次排序后的结果:");
System.out.println(Arrays.toString(array));
}
}
public static void main(String[] args) {
int[] array={49,38,65,97,76,13,27,49};
System.out.println("未排序数组:");
System.out.println(Arrays.toString(array));
insertSort(array);
}
}
输出结果: