java插入排序

基本思想

      每一步将一个待排序的记录,按其顺序码大小插入当前面已经排序的字序列的合适位置,知道全部插入为止。

      在计算机的实现中,为了给插入的元素腾出空间,我们需要将其所有的元素再插入之前都向右移动一位,这种算法叫做插入排序。

     插入排序所需要的时间取决于输入中元素的初始顺序。

package wang.chunsen.sort;

/**
 * 插入排序
 */
public class InsertSort {

    public static void main(String[] args) {

        int[] array = {99, 76, 9, 3, 12, 43, 45, 51};
        sort(array);
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }

    public static void sort(int[] array) {

        int N = array.length;  //数组的长度
        int temp;  // 放于for循环外面是为了防止重复创建变
        int j;
        for (int i = 1; i < N; i++) {//排序的趟数
            temp = array[i]; //赋给temp是为了防止索引i之前的元素向后移动覆盖了索引i的元素
            j = i - 1;
            for (; j >= 0 &&array[j] > temp; --j) { //将大于I 位值的元素向后移

                array[j + 1] = array[j];
            }
            array[j + 1] = temp;
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值