八大排序算法(4)-插入排序

插入排序

1.直接插入排序的算法思路:

  • (1) 设置监视哨r[0],将待插入纪录的值赋值给r[0];
  • (2) 设置开始查找的位置j;
  • (3) 在数组中进行搜索,搜索中将第j个纪录后移,直至r[0].key≥r[j].key为止;
  • (4) 将r[0]插入r[j+1]的位置上。

2.Java代码实现:

package com.ustc.sort;

import java.util.Arrays;

/** 
* @author 王聪
* @version 创建时间:2017年3月19日 下午10:52:34 
* 类说明 
*/
public class InsertSort {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] a = {3,2,5,6,7};
        System.out.println(Arrays.toString(InsertSort(a)));
    }
    
    /**
     * 插入排序
     * @param 传入数组  
     * @return 排序后的数组
     */
    public static int[] InsertSort(int[] a) {
        
        for (int i = 1; i < a.length; i++) {
            int temp = a[i];
            int current = i;
            // 如果当前插入值小于已经排序好的值,往前继续修改
            while (current > 0 && temp < a[current-1]) {
                a[current] = a[current-1];
                current--;
            }
            a[current] = temp;
        }
        
        return a;
    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,235评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,747评论 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 1,287评论 0 2
  • 总结一下常见的排序算法。 排序分内排序和外排序。内排序:指在排序期间数据对象全部存放在内存的排序。外排序:指在排序...
    jiangliang阅读 1,410评论 0 1
  • 我在河边种下一颗小树 用它来记录我们的成长 春风拂过堤岸 惊起一滩涟漪 夏日懒洋洋的照着 浑身都懒得伸展 一片清凉...
    乌托邦的梦阅读 513评论 0 0