【Java SE】如何用Java实现插入排序

摘要:前面三期分别写了三篇简单排序的算法,今天来讲一点稍微难一点的排序算法-----插入排序。

  1. 基本思想:
    1. 设n个数据已经按照顺序排列好(假定从小排到大)。
    2. 输入一个数据x,将其放在恰当的位置,使其顺序依旧从小到大。
    3. 输出已经排序完的数据。
  2.  适宜人群:
    1.   有一定Java SE基础,明白Java的数据类型,数组的定义、初始化以及常用数组的方法,还有Java的循环操作。
  3.  前期准备:
    1.   最好有一个开发工具比如说:eclipse或者myeclipse都可以,当然你使用DOS系统进行编译运行都可以,只不过改bug会麻烦一点。  
  4. 插入排序的应用范围:
    1.   适合已经排序好的数据中插入一个或多个数据。
  5.  算法的优缺点:
    1. 优点:稳定,快;
    2. 缺点:比较次数不一定,比较次数越少,插入点后的数据移动越多,特别是当数据总量庞大的时候,但用链表可以解决 这个问题。
  6. 算法实现:
    package liuenci.cn.package_3;
    
    public class HomeWork {
        
    
        public static void main(String[] args) {
            int a[] = { 38,65,97,76,13,27,49 };
            insertSort(a);
            for(int i:a){
                System.out.print(i +" ");
            }
        }
        public static void insertSort(int[] a) {
            int i, j, insertNote;
            for (i = 1; i < a.length; i++) {
                insertNote = a[i];
                j = i - 1;
                while (j >= 0 && insertNote < a[j]) {
                    a[j + 1] = a[j];
                    j--;
                }
                a[j + 1] = insertNote;
            }
        }
    } 

     

转载于:https://www.cnblogs.com/liu-en-ci/p/6834289.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值