码迷,mamicode.com
首页 > 编程语言 > 详细

插入排序

时间:2019-04-03 09:16:42      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:author   span   .com   img   ati   --   print   代码   void   

1 算法步骤 

  1)将待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

  2)从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

2 动画演示

  技术图片

 3 参考代码

package com.tcxpz.insert;
/**
 * 直接插入排序
 * @author jgp QQ:1072218420
 *
 */
public class InsertSort {
    public static void main(String[] args) {
        int[] arr = new int[]{5,3,4,7,2};
        System.out.print("排序前:");
        for(int num:arr)
            System.out.print(num+" ");
        System.out.println();
        //进行排序
        int[] bubble_arr = sort(arr);
        System.out.print("排序后:");
        for(int num:bubble_arr)
            System.out.print(num+" ");
    }
    private static int[] sort(int[] arr) {
        for(int i=1;i<arr.length;i++){
            // 记录要插入的数据
            int temp=arr[i];
            // 从已经排序的序列最右边的开始比较,找到比其小的数
            int j=i;
            while(j>0&&temp<arr[j-1]){
                arr[j]=arr[j-1];
                j--;
            }
            // 存在比其小的数,插入
            if(j!=i){
                arr[j]=temp;
            }
        }
        return arr;
    }
}

插入排序

标签:author   span   .com   img   ati   --   print   代码   void   

原文地址:https://www.cnblogs.com/tcxpz/p/10588479.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!