排序

排序
1.什么是排序?
2.为什么要排序?
3.怎样排序?
1.什么是排序?
排序(sorting):是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列
2.为什么要排序?
(1)为了查找方便,我们知道,有序的顺序表可以用折半查找,其平均查找长度为log(n+1)-1,而无序表的顺序表的查找只能进行顺序查找,其平均查找长度为(n+1)/2
(2) 二叉排序树,B-树 的构造过程本来就是一个排序过程
3,有哪些排序?
根据排序过程涉及到存储器不同(是否需要外存的参与)可以将排序方法分为两大类:
(1)内部排序:待排序记录只在计算机的内存中进行。
(2)外部排序:待排序的记录的数量很大,以致内存一次不能容纳全部记录,在排序的过程中需要对外存进行访问
4.内部排序有哪些?
内部排序方法有很多,但就其全面性而言,很难提出一种被认为是最好的方法,每一种方法都有各自的优缺点,适合在不同的环境下使用。
根据排序过程中依据的不同原则对内部排序进行分类大致可以分为五种:
(1)插入排序(2)交换排序(3)选择排序(4)归并排序(5)计数排序
在后面的文章中将对以上5类算法原理和复杂度,优缺点及其使用场合进行详细讲解
根据排序过程中所需的工作量来区分,可将排序分为三大类:
(1)简单的排序方法,时间复杂度为(O(n^2))
(2)先进的排序方法,时间复杂度为(O(nlogn))
(3)基数排序,时间复杂度为(d*n)
5.怎样排序?
在排序过程中,重要的是要掌握算法在排序过程中所依据的原则,通常在排序过程中涉及到两种基本操作:
(1)比较:比较两个关键字的大小
(2)移动:将记录从一个位置移动到另一个位置
比较对于大多数排序算法都是必须的,而移动可以通过改变记录的存储方式来避免
6.怎样存放待排记录
待排记录总共有三种存储方式:
(1)顺序存储:待排序的记录存放在地址连续的一组存储单元上。它类似于线性表的顺序存储结构,在序列中相邻的两个记录R_j 和R_(j+1)(j = 1,2,3…n-1),存储位置也相邻,在这种顺序表的存储方式中记录之间的次序关系由其存储位置决定(逻辑结构相邻的记录,物理结构也相邻),实现排序必须借助移动记录。
(2)静态链表:将一组待排序的记录存放在静态链表中,记录之间的次序关系由指针指示,则实现排序不需要移动记录,只需要修改指针的指示即可。
注:静态链表:
(3)地址排序:待排序的记录本身存储在一组地址连续的存储单元上,但同时另设一个指示各个记录存储位置的地址向量,在排序过程中,不移动记录本身,而移动地址向量中这些记录的地址。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值