• java插入排序


    一、基本概念

          插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。

    二、java代码实现

    public class InsertSort {
        public static void inserSort(int[] array){
            if (array==null||array.length<2){
                return;
            }
    
            for (int i=1;i<array.length;i++){  //默认第一个元素为有序队列,从第二个元素开始循环插入
               int position=array[i];          //设置第二个元素为要插入的数据
               int j=i-1;
                while (j>=0&&position<array[j]){
                    array[j+1]=array[j];      //如果插入发数小于第j个元素,将第j个数向后移
                    j--;
                }
                array[j+1]=position;         //插入
            }
        }
    
        public static void main(String ags[]){
            int[] array={2,6,4,7,3,-1};
            inserSort(array);
            for (int i=0;i<array.length;i++){
                System.out.print(array[i]+" ");
            }
        }
    }
    View Code

    三、性能分析

    • 稳定 
    • 空间复杂度O(1) 
    • 时间复杂度O(n2) 
    • 最差情况:反序,需要移动n*(n-1)/2个元素 
    • 最好情况:正序,不需要移动元素
    转载请注明出处:http://www.cnblogs.com/jiansen/
  • 相关阅读:
    Java script基础 回顾
    Application、 session、iewstate,以及repeater 的commang用法
    Response、Request、QueryString,repeater添加,修改,删除数据
    Repeater 使用方法
    web form 复合控件
    weborm 简单控件
    WebForm开发基础
    Asp.Net 基础理论
    winform 进程,线程
    repeater使用
  • 原文地址:https://www.cnblogs.com/jiansen/p/7343872.html
Copyright © 2020-2023  润新知