软件设计师算法之分治法–快速排序

                  快速排序也是通过分治法。它的思路是先确定第一个元素的位置,该位置之前的元素全部小于第一个元素,该位置之后的元素全部大于该元素。确定位置后,把数组分为了前后2部分,对这2部分执行递归操作,直达递归到数组为1的大小,即递归到了最底层,即完成了排序过程。

                 比如数组  5, 3,8, 1, 23, 14,首先选取第一个元素为,5,我们现在要确定5的位置。

                 首先,从后面开始和2(待确定位置的元素)比较,14 大于2,往前一个元素为23,仍然大于2,继续往前,直到看到元素1, 1比2小,交换这2个元素,

数组变为: 1 , 3, 8,5, 23, 14

                 接着,我们从前面开始比较, 3比5小,往后为8,8比5大,交换这2个元素,

 数组变为: 1,3,5,8, 23,14 

                交换后,前后的位置已经重叠了。那么5的位置也确定了。可以看出,5的位置前面的元素都小于5,5后面的元素全部都大于5。对5前后的2部分执行递归操作,即可完成整个排序过程。

                代码如下:

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览33864 人正在系统学习中

来源:faithzzf

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年7月22日
下一篇 2017年7月22日

相关推荐