(20220223)排序的实现

概述

基本概念:

定义:将文件中的数据记录按关键字值的递增或递减的顺序排列起来。

        {R1, R2,..., Rn}→ {Ri1, Ri2,..., Rin}

其中关键字{k1, k2,..., kn}→有序序列{ki1, ki2,..., kin}

排序方法的稳定性: 对于ki=kj的记录Ri=Rj( Ri在Rj之前),

排序后: Ri仍在Rj之前,则排序方法是稳定的; Ri在Rj之后, 则排序方法是不稳定的;

方法分类:

内部排序:在内存中进行,适于小文件

外部排序:使用内存和外存,适于大文件,内存不够用

内部排序:文件可有三种存储结构

(1)一维数组:对记录的物理位置重排

(2)链表:修改指针

(3)索引表:对索引进行物理重排,记录位置不动(由于不方便移动等原因)

本讲仅考虑:记录数组R[n],关键字key为整数

标准: 执行时间(最重要的标志),所需空间,算法复杂度 排序的时间代价主要指:算法中关键字的比较次数和记录的移动次数

一、插入排序(直接插入排序、希尔排序)

二、直接选择排序

三、交换排序(冒泡排序、快速排序)

四、归并排序

五、内部排序比较方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值