什么是排序算法
排序是程序员一直在用的,决定做个分类,陆续将各种排序的PHP实现写出来。喜欢的朋友可以看看。首先还是来看看对排序相关知识的介绍。
在计算机科学技术和数学里,排序又称排序算法。一个排序算法(Sorting algorithm)是一种能将一串资料依照特定排序方式的一种算法。
到这里,简单的说下算法吧。算法(Algorithm)是指完成一个任务所需要的具体步骤和方法。也就是说给定初始状态或输入数据,能够得出所要求或期望的终止状态或输出数据。算法常常含有重复的步骤和一些比较或逻辑判断。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。好了,不再去扩展空间复杂度和时间复杂度了。
回到排序,最常用到的排序方式是数值顺序以及字典顺序。有效的排序算法在一些算法(例如搜寻算法与合并算法)中是重要的,如此这些算法才能得到正确解答。排序算法也用在处理文字资料以及产生人类可读的输出结果。基本上,排序算法的输出必须遵守下列两个原则:
- 结果为递增序列,递增是针对所需的排序顺序而言,可能是数字顺序或者字典顺序
- 结果是原输入的一种排列或重组
虽然排序算法是一个简单的问题,但是从计算机科学技术发展以来,已经有大量的研究在此问题上。举例而言,气泡排序在1956年就已经被研究。虽然大部分人认为这是一个已经被解决的问题,有用的新算法仍在不断的被发明。(例子:图书馆排序在2004年被发表)
关于排序的分类,有稳定的、不稳定的、不实用的排序算法。