插入排序:直接插入排序

直接插入排序思想:

直接插入排序(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);
    }
}

输出结果:

 

posted @ 2020-04-23 13:28  Cool_Yang  阅读(180)  评论(0编辑  收藏  举报