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

    插入排序的思想:插入排序是在一个已经有序的小序列的基础上,一次插入一个元素。当然,刚开始这个有序的小序列只有1个元素,就是第一个元素。比较是从有序序列的末尾开始,也就是想要插入的元素和已经有序的最大者开始比起,如果比它大则直接插入在其后面,否则一直往前找直到找到它该插入的位置。如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。

    插入排序

    import java.util.Arrays;
    
    /**
     * 插入排序
     * @author wzc
     */
    public class InsertSort {
         public static void main(String[] args) {
            int []a={50,61,21,564,479,15,15,56,1,565};
            //进行插入排序
            InsertSort(a);
            //显示结果
            System.out.println(Arrays.toString(a));
        }
         /**
          * 插入排序
          * @param a  待排序的数组
          */
        private static void InsertSort(int[] a) {
            int  length=a.length;
            int temp=0;
            //从第二个数开始往前插入--->其实当前数前面的数都是有序的了
            for(int i=1;i<length;i++){
                for(int j=i;j>0&&a[j]<a[j-1];j--){//如果比前面的数小 就进行交换
                        temp=a[j];
                        a[j]=a[j-1];
                        a[j-1]=temp;
                    
                } //直到前面的数没有比自己小的了
            }
            
        }
    }

    插入排序的时间复杂度为O(N)

  • 相关阅读:
    Python 字符串处理大全.
    图形化翻译助手
    爬虫详解
    Python 模块.
    定制序列
    Python 的property的实现 .
    Python的魔法方法 .
    通过类的装饰器以及各种单例模式(修复版本)。
    是时候写一下Python装饰器了。
    %E2%80%8C的字符串问题,卡住三个小时。
  • 原文地址:https://www.cnblogs.com/Actexpler-S/p/7673900.html
Copyright © 2011-2022 走看看