排序
说到排序,其实大家都不陌生,因为我们每个人基本上每天都在和它打交道。举个简单的例子,大家都有网购的经历吧,比如说在网上买个高端霸气上档次的电脑-Mac Pro,在网页上,有按价格,按信用度等排序,当你点击时,就会按照你要求进行排序,最终你愿意购买的商家。还有一个令大家刻骨铭心,令大多数人侧夜难眠的经历,高考完以后,进行全身排名,划分数线,一本,二本…,一瞅,全省排名xxxxxx名,无望了。哎,小编我也经历过…痛…。
上面简单的bb了几句,接来下然我们书归正传…
排序目的:通过排序可以重新排列一个数据元素集合或序列,目的排成一个数据元素某个项值的排序。就好比我们上面提到的网购的经历。
一.内排序与外排序
根据排序是数据所占储存器的不同,可以将排序分为两类:内排序,外排序。
内排序:整个排序过程完成在内存中进行,称为内排序。
外排序:因为待排序记录数据量太大,内存无法容纳全部数据,需要借助外部储存设备才能完成排序,称为外排序。
对于内排序来说,个人觉得排序算法的性能主要受两个个方面影响:
1.时间性能:主要包括比较次数和移动次数。高效能的尽可能减少关键字的比较次数与记录的移动次数。
2.算法的 复杂度。
二.排序的分类
1.插入排序:直接插入排序、折半插入排序、表插入排序、希尔排序。
2.交换排序:冒泡排序、快速排序。
3.选择排序:直接选择排序、树形排序、堆排序。
4.归并排序
注:无特别说明,以后所说的排序都为内排序。
今天梳理到这,如有偏差,尽情谅解。谢谢