波斯马BOSSMA Information Technology

C#排序算法之快速排序

发布时间:2010年9月13日 / 分类:DOTNET / 4,405 次浏览 / 评论

前边几篇文章介绍了几种排序的算法,并且针对某些算法做了优化。这篇文章介绍一种比较快速的排序算法:快速排序,可以说是冒泡排序的改进。原理是就是找出一个基准数,然后将小于该数的数字放到左边,大于该数的数字放到右边,这样就完成一轮快速排序,然后左边部分和右边部分分别再进行快速排序,如此递归执行,只有一个数字时就排序完毕了。

看一个标准的实现:

理解起来稍微有些复杂,就是从后到前找一个比基准数小的值,从前到后找一个比基准数大的值。分别与当前的i值和j值做交换,目的就是将小数放到基准数的前边,大数放到基准数的后边,分成两组,然后分组继续快速排序。

可以对交换部分做一定的改进:

这样就看着简介多了,更容易理解。

经测试,快速排序的效率明显高于前面介绍的接种基本排序方式。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯马,原文地址《C#排序算法之快速排序

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

发表评论