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

    排序(sort)或分类

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

    1.被排序对象--文件
      被排序的对象--文件由一组记录组成。
      记录则由若干个数据项(或域)组成。其中有一项可用来标识一个记录,称为关键字项。该数据项的值称为关键字(Key)。
      注意:
         在不易产生混淆时,将关键字项简称为关键字。

    2.排序运算的依据--关键字
         用来作排序运算依据的关键字,可以是数字类型,也可以是字符类型。
         关键字的选取应根据问题的要求而定。
    【例】在高考成绩统计中将每个考生作为一个记录。每条记录包含准考证号、姓名、各科的分数和总分数等项内容。若要惟一地标识一个考生的记录,则必须用"准考证号"作为关键字。若要按照考生的总分数排名次,则需用"总分数"作为关键字。

    排序的稳定性

         当待排序记录的关键字均不相同时,排序结果是惟一的,否则排序结果不唯一。
         在待排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的;若具有相同关键字的记录之间的相对次序发生变化,则称这种排序方法是不稳定的
      注意:
         排序算法的稳定性是针对所有输入实例而言的。即在所有可能的输入实例中,只要有一个实例使得算法不满足稳定性要求,则该排序算法就是不稳定的。

    排序方法的分类

    1.按是否涉及数据的内、外存交换分

         在排序过程中,若整个文件都是放在内存中处理,排序时不涉及数据的内、外存交换,则称之为内部排序(简称内排序);反之,若排序过程中要进行数据的内、外存交换,则称之为外部排序
      注意:
         ① 内排序适用于记录个数不很多的小文件
         ② 外排序则适用于记录个数太多,不能一次将其全部记录放人内存的大文件。

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

  • 相关阅读:
    WingIIDE的licese破解方法
    HttpCookie
    Jquery中html()方法 and "click"绑定后代元素
    jquery 选择器多个
    input标签的type为select、radio、checkbox的使用
    c#中?和??使用
    VS中使用附加进程来调试项目
    刷新局部页面
    ant design vue 文件上传的集中页面
    vue 上传超大文件出现Uncaught (in promise) Error: Network Error at createError
  • 原文地址:https://www.cnblogs.com/innovate-007/p/5040280.html
Copyright © 2011-2022 走看看