推广 热搜: 可以  搜索引擎  page  企业  百度  个数  使用  选择  音视频  行业 

快速排序优化算法原理及C语言实现

   日期:2024-12-20     移动:http://ww.kub2b.com/mobile/quote/7354.html

   快速排序(quicksort)的主要思想是分治,意为分而治之。其算法整体思路如下图

   我们这次的优化主要针对中轴点的选取。
   我们知道,快速排序的中轴数的选取有多种方法,一般有三种选择方法:选数组的第一个数、选数组的最后一个数、选数组中间位置的数。但是由于原数组的无序性,每种选择方法的排序次数、交换次数都是不一样的,也就是说,对于不一样的数组,三种选择的表现不同,没有一种选择方法在每种数组中的表现都优于其他两种。
   因此,有人提出中轴点的选取时采取随机数的方法,随机选取数组中的任一数作为中轴点。这提高了算法的效率。
   我们介绍的这种算法在效率上比上一优化算法提高了14%。选择第一个(位置为 l)、中间(位置为 c)和最后一个元素(位置为 r)的中间值作为中轴数,并将这个数放到数组第一位。保证 l 位置的数是中轴数,c 位置的数为三者中最小的数,r 位置的数是最大的数。其他部分与经典快速排序基本相同。

   您被要求编写一个程序,在升序的字符串数组(即ASCll代码)上执行快速排序。输出每步的结果,以换行符分割。您可以安全地假设所有字符串都是独立的,不包含空格,字符串的长度最多为100。
   您的程序应该从文件中读取输入,并将答案输出到另一个文件。第一个参数是输入文件名,第二个参数是输出文件名,您的程序名为“2.txt”

   Sample Input:
   4
   Apple Orange Banana Pear

   Sample Output:
   Banana Apple Orange Pear
   Apple Banana Orange Pear

本文地址:http://ww.kub2b.com/quote/7354.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号