zoukankan      html  css  js  c++  java
  • 排序算法之 Java插入排序算法

    package net.qh.test.sort;
    
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.List;
    
    /**
     * Created by Administrator on 2016/03/01.
     */
    public class Insert {
    
        public int[] sort(int[] arr){
            if ( arr == null || arr.length <= 1 ){
                return arr;
            }
            int length = arr.length;
            for(int i = 1; i < length;i++){
                int k = i-1;
                int temp = arr[i];
                while(k >= 0){
                    if(arr[k] > temp){
                        arr[k+1] = arr[k];
                    }else{
                        break;
                    }
                    arr[k] = temp;
                    k--;
                }
            }
    
            return arr;
        }
    
    
        public static void main(String[] args){
    
            List<Integer> intList = new ArrayList<Integer>();
            for(int i = 0; i < 100000; i++){
                intList.add(i);
            }
            int[] arr = new int[intList.size()];
            for(int j = 0; j < arr.length; j++){
                arr[j] = intList.get(j);
            }
            for(int temp : arr){
                System.out.print(temp + ", ");
            }
            System.out.println("");
            long start = Calendar.getInstance().getTimeInMillis();
            arr = new Insert().sort(arr);
            long end = Calendar.getInstance().getTimeInMillis();
            System.out.println("所需毫秒:" + (end - start));
            for(int temp : arr){
                System.out.print(temp + ", ");
            }
        }
    
        /**
             1. 该排序算法是简单插入排序算法。
             2. 排序思想:通过遍历,把最小的找出来,记录下标,然后和目的位置进行交换。
             3. 和冒泡排序比较:
                                和冒泡排序一样是一个非常简单的排序算法。
                                把一条新的记录插入到一个有序的数组中时,通有序数组进行比较,把大的数据往后面移动,然后把新的记录赋值合适的位置。
                                冒泡排序进行的是完全交换,插入排序进行的是半交换,比冒泡排序要快。
             4. 简单选择排序的阶:O(n^2), 是稳定的排序。
             5. 实战测试:4核CPU和8G内存下,对100000个整型元素的数组排序, 逆序需要 5646 毫秒, 有序需要:5798毫秒
         */
    
    }
    

      

  • 相关阅读:
    vue-cli 安装一直失败
    如果不存在公缀,返回空字符串
    .sh文件格式问题dos转linux或unix
    Kettle串联多个Spark任务
    云效自动化部署+部署包备份
    云效分支管理
    云效IDE综合插件Alibaba Cloud Toolkit
    流水线自动化部署-中转部署-目标机器不联网情况下应用
    云效流水线自动化部署
    云效流水线自动发布到Maven仓
  • 原文地址:https://www.cnblogs.com/aDiot/p/5232172.html
Copyright © 2011-2022 走看看