zoukankan      html  css  js  c++  java
  • 数据结构之插入排序

    • 基本原理

           对于给定的一组记录,初始时假设第一个记录自成一个有序序列,其余记录为无序序列。接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,知道最后一个记录插入到有序序列中为止。

    • 程序如下
    public class Test{
        public static void insertSort(int[] a){
            for(int i=1;i<a.length;i++){
                int temp = a[i], j = i;
                if(temp<a[j-1]){
                    while(j>=1 && temp<a[j-1]){
                        a[j] = a[j-1];
                        j--;
                    }
                }
                a[j] = temp;
            }
        }
        public static void main(String[] args){
            int[] a = {7,6,4,8,9,3,2};
            insertSort(a);
            for(int i=0;i<a.length;i++){
                System.out.print(a[i]+" ");
            }
        }
    }

             程序结果

    • 算法分析
    1. 最好时间:O(n)
    2. 平均时间:O(n2)
    3. 最坏时间:O(n2)
    4. 辅助存储:O(1)
    5. 稳定性:稳定
  • 相关阅读:
    Collection LinkedList
    java 浅拷贝和深拷贝
    Collection ArrayList
    Java 集合
    Activity、Fragment、Service、View生命周期
    Android 事件分发机制
    retrofit2.0
    Android 知识图谱
    设计模式-代理模式
    多线程-lock
  • 原文地址:https://www.cnblogs.com/jiqianqian/p/6626764.html
Copyright © 2011-2022 走看看