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

    使一串记录,按照其中的某个或某些关键字的大小,递增或递减排列起来的操作叫作排序。排序算法就是如何使记录按照要求排列的方法。排序算法在很多领域都得到了足够的重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域,考虑到数据的各种限制和规范,要想得到满足实际需要的优秀算法,需要经过大量的推理和分析。
    例如:随机输入一个序列的 n 个数,序列为:a1,a2,a3,…,an,通过算法实现输出:n 个数的排列顺序为:a1『,a2』,a3『,…,an』,使得 a1'≤a2'≤a3'≤…≤an『(根据实际需求也可以实现从大到小的排序,方法不唯一)。
    1)关于排序算法的一些术语说明:
    稳定性:如果 a 原本在 b 前面,而 a=b,那么排序之后 a 仍然在 b 的前面。
    不稳定性:如果 a 原本在 b 的前面,而 a=b,那么排序之后 a 可能会出现在 b 的后面。
    内排序:所有排序操作都在内存中完成。
    外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行。
    时间复杂度:一个算法执行所耗费的时间。
    空间复杂度:运行完一个程序所需内存的大小。
    2)相关排序算法的对比如下:

    注释:n 表示数据规模;k 表示「桶」的个数;In-place 表示占用常数内存,不占用额外内存;Out-place 表示占用额外内存。

    3)算法根据稳定性分类如下:

  • 相关阅读:
    Raid5 Raid10性能测试
    MetaData_model_package
    UBoot命令说明
    ubuntu 12.10 配置一个Apache+MySQL+phpMyAdmin环境
    SSH服务器
    VC2008使用boost库方式
    嵌入式Web服务器BOA移植
    利用matlab将数据写入指定列的方法
    error LNK2019: 无法解析的外部符号,解决办法
    在CYGWIN下编译和运行软件Bundler ,以及PMVS,CMVS的编译与使用
  • 原文地址:https://www.cnblogs.com/hardy-wang/p/13099575.html
Copyright © 2011-2022 走看看