• 排序算法


    排序就是将一组杂乱无章的数据按一定的规律(关键字)排列起来(或增或减)。在查找数据之前,我们可以通过排序操作对数据进行排序,以此方便数据查找。

    排序的规律成为:关键字

    关键字分为主关键字和次关键字

    主关键字:通过主关键字进行排序,排序的结果是唯一的。常用的id

    次关键字:通过次关键字进行排序的结果可能不是唯一的。姓名。性别等

    稳定性:通过次关键字排序时,如果存在两条数据的次关键字的值相等,这两条数据经过算法排序后,依旧按照排序前的先后顺序,那么则称这个排序算法是稳定的。

    衡量排序算法的标准:

    1、所需要的平均比较次数

    2、所需要的平均移动次数

    3、所需要的平均辅助空间

    内排序和外排序

    内排序:实质在排序期间数据对象全部存放在内存的排序;这个过程是一个逐步扩大记录的有序序列长度的过程。数据记录序列,存在无序序列和有序序列两个区域。

    外排序:是指在排序期间全部对象个数太多,不能同时存放在内存,必须根据排序过程的要求,不断地在内存和外村之间移动的排序。

    排序的分类:基于不同的“扩大”有序序列长度的方法,内部排序方法可分为以下几个类别:

    1、插入类(直接插入排序、折半插入排序、2——路插入排序、希尔排序)

    2、交换类(冒泡排序、快速排序)

    3、选择类(直接选择排序、锦标赛排序、堆排序)

    4、归并类(通过“归并”两个或两个以上的记录有序序列子集,逐步增加记录有序序列的长度)

    插入排序:每一步将待排序对象,按照其排序码(关键字)的大小,插入到已经排好序的有序序列里的适当位置。根据寻找插入点方式的不同,插入排序又可分为:

    直接插入排序、折半插入排序、2——路插入排序、希尔排序。

    交换排序:两两比较待排序对象的排序码(关键字),如果发生逆序,则交换之,知道所有对象都排好序为止。

    选择排序:通过从无序序列中查找出排序码(关键字)最大值的数据记录或最小值的数据记录,将其按一定的方法进行一次移动到有序序列。

    归并排序:主要是二路归并排序,通过“归并”两个或两个以上的记录有序序列子集,逐步增加记录有序序列的长度

  • 相关阅读:
    ACM
    Java实现排序
    HTML导出Excel文件(兼容IE及所有浏览器)
    WebForm应用log4net记录错误日志——使用线程列队写入
    @RefreshScope 配置方法
    Eclipse oxygen 版本汉化教程
    创建Dynamic Web Project时 显示最新Apache Tomcat 8.0 的方法
    微软汉字转拼音
    Ueditor 前后端分离实现文件上传到独立服务器
    汉字转拼音类(多音字)
  • 原文地址:https://www.cnblogs.com/huanqiuxuexiji/p/9164748.html
Copyright © 2020-2023  润新知