zoukankan      html  css  js  c++  java
  • 排序01基础知识

    一)排序的定义

    所谓排序,就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来。其确切定义如下:
    输入:n个记录R1,R2,…,Rn,其相应的关键字分别为K1,K2,…,Kn
    输出:Ril,Ri2,…,Rin,使得Ki1≤Ki2≤…≤Kin。(或Ki1≥Ki2≥…≥Kin)。

    二)排序的分类

    1.按是否涉及数据的内、外存交换分
    在排序过程中,若整个文件都是放在内存中处理,排序时不涉及数据的内、外存交换,则称之为内部排序(简称内排序);反之,若排序过程中要进行数据的内、外存交换,则称之为外部排序

    注意:
    内排序适用于记录个数不很多的小文件
    外排序则适用于记录个数太多,不能一次将其全部记录放人内存的大文件。

    2.按策略划分内部排序方法
    可以分为五类:插入排序、选择排序、交换排序、归并排序和分配排序

    三)具体的排序方法(待补充)

    插入排序:直接插入排序、折半插入排序、希尔排序

    交换排序:冒泡排序、快速排序

    选择排序:简单选择排序、堆排序

    归并排序:归并排序

    四)排序算法的评价

    1.评价排序算法好坏的标准
    评价排序算法好坏的标准主要有两条:
    ① 执行时间和所需的辅助空间
    ② 算法本身的复杂程度

    2.排序算法的空间复杂度
    若排序算法所需的辅助空间并不依赖于问题的规模n,即辅助空间是O(1),则称之为就地排序(In-PlaceSou)。
    非就地排序一般要求的辅助空间为O(n)。

    3.排序算法的时间开销
    大多数排序算法的时间开销主要是关键字之间的比较和记录的移动。有的排序算法其执行时间不仅依赖于问题的规模,还取决于输入实例中数据的状态。

  • 相关阅读:
    c#中枚举的使用
    WEB页面下载内容导出excel
    浏览器使用说明
    ChromiumWebBrowser 禁用右键菜单
    ExpressionHelp2
    安装T4环境
    打印功能
    操作图片
    软件开发中的框架概念和技术路线概念
    Grpc-Client引用Server的proto文件时Build Fail
  • 原文地址:https://www.cnblogs.com/huangfox/p/2567562.html
Copyright © 2011-2022 走看看