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

    1.插入排序

    特点:算法较简单(类似扑克牌),但效率比较低,适合数据量较少(几千,几万),有序的数据。复杂度 O(n) O(n2) O(n2) 。

    void sortInsert(int *dat, int size)
    {
        int i, pos;
        
        for (i = 1; i < size; i++)
        {
            pos = i - 1;
            int value = dat[i];
            
            while (pos >= 0 && dat[pos] > value){
                pos--;
            }
            pos++;
            memmove(dat + pos + 1, dat + pos, (i - pos) * sizeof(int));
            dat[pos] = value;
        }
    }

    测试:排序 100W 整型数据,约需 15min(用 sort 命令只需 2s!)

    void sortInsert2(int *dat, int size)
    {
        int i, pos, value;
        
        for (i = 1; i < size; i++)
        {
            pos = i - 1;
            value = dat[i];
            
            while (pos >= 0 && dat[pos] > value){
                /* 相应元素后移一个位置 */
                dat[pos + 1] = dat[pos];
                pos--;
            }
            dat[pos + 1] = value;
        }
    }

    测试:排序 100W 整型数据,约需 30min!!

    Stay hungry Stay foolish
  • 相关阅读:
    Hive优化
    RDD
    从Hadoop MapReduce到Spark
    Spark on yarn模式
    Hive的web端配置——HWI
    Spark环境搭建
    java身份证号校验
    java手机号码、电子邮箱校验
    服务器运维的日常维护工作
    JavaSSM框架简介
  • 原文地址:https://www.cnblogs.com/xiangzi888/p/2466344.html
Copyright © 2011-2022 走看看