【算法】排序的基本概念与分类

1、排序的定义
排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序,若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。内部排序的过程是一个逐步扩大记录的有序序列长度的过程。

2、排序的稳定性
由于实践中通常时根据数据的多个关键字进行排序,此时就产生排序的稳定与不稳定问题。例如学生成绩排序:关键字又数理化生,总分等如下图所示。定义:我们给出了稳定与不稳定排序的定义。
假设 ki=k1 (1<i<n,1<j<n,i􀀖j), 且在排序前的序列中n领先于 r1 (即同)。 如果排序后ri仍领先于r1,则称所用的排序方法是稳定的;反之,若可能使得排序后的序列中n领先ri,则称所用的排序方法是不稳定的。
在这里插入图片描述
经过对总分的 降序排序后,总分高的排在前列。此时对千令狐冲和张无忌而言,未排序时是令狐冲在 前,那么它们总分排序后,分数相等的令狐冲依然应该在前,这样才算是稳定的排序,一如果他们二者颠倒了,则此排序是不稳定的了。只要有组关键字实例发生类似情况,就可以认为排序不稳定。同时排序稳不稳定需要经过分析才知道。

3、内排序与外排序
内排序:指在排序期间数据对象全部存放在内存的排序。
外排序:指在排序期间全部对象太多,不能同时存放在内存中,必须根据排序过程的要求,不断在内,外存间移动的排序。
影响内排序的因素:时间性能(比如比较与移动操作)、辅助空间、算法的复杂度(算法本身复杂度) 根据算法中借助的操作,我们可以把内排序分为:【插入排序、交换排序、选择排序与归并排序】如根据算法的复杂度可分为2类:【简单选择、冒泡、直接插入属于简单排序】;其余【希尔、归并、堆、快速】属于改进算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值