1 快速排序 介绍:快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性。 步骤:▲从数列中挑出一个元素,称为 “基准”(Pivot), ▲重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。 ▲递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。 排序效果:2 归并排序 介绍:归并排序(Merge sort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用 步骤:▲申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 ▲设定两个指针,最初位置分别为两个已经排序序列的起始位置 ▲比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置 ▲重复步骤3直到某一指针达到序列尾 ▲将另一序列剩下的所有元素直接复制到合并序列尾 排序效果:3 堆排序 介绍:堆积排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 步骤:(比较复杂,自己上网查吧) 排序效果:4 选择排序 介绍:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此类推,直到所有元素均排序完毕。 排序效果: |