【快速排序算法流程图】!!!急

这篇文章主要利用视觉直观的几种若干常用排序算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
直观感受几种常用排序算法,具体内容如下

1 快速排序

介绍:
快速排序是由东尼·霍尔所发展的一种排序算法 。在平均状况下,排序 n 个项目要Ο(n log n)次比较 。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见 。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二次方项之可能性 。
步骤:
从数列中挑出一个元素,称为 "基准"(pivot),
重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边) 。在这个分区退出之后,该基准就处于数列的中间位置 。这个称为分区(partition)操作 。
递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序 。

排序效果:

【快速排序算法流程图】!!!急

文章插图
2 归并排序

介绍:
归并排序(Merge sort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法 。该算法是采用分治法(pide and Conquer)的一个非常典型的应用
步骤:
申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列
设定两个指针,最初位置分别为两个已经排序序列的起始位置
比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置
重复步骤3直到某一指针达到序列尾
将另一序列剩下的所有元素直接复制到合并序列尾

排序效果:

【快速排序算法流程图】!!!急

文章插图
3 堆排序

介绍:
堆积排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法 。堆是一个近似完全二叉树的结构,并同时满足堆性质:即子结点的键值或索引总是小于(或者大于)它的父节点 。
步骤:
(比较复杂,自己上网查吧)
排序效果:
【快速排序算法流程图】!!!急

文章插图
4 选择排序

介绍:
选择排序(Selection sort)是一种简单直观的排序算法 。它的工作原理如下 。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾 。以此类推,直到所有元素均排序完毕 。
排序效果:
【快速排序算法流程图】!!!急

文章插图
5 冒泡排序

介绍:
冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法 。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来 。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成 。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端 。
步骤:
比较相邻的元素 。如果第一个比第二个大,就交换他们两个 。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对 。在这一点,最后的元素应该会是最大的数 。