“快速排序”编码详解

1、快速排序是对冒泡排序的一种改进。
2、快排的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
3、基本流程:
        首先是最基本的一个数组a,然后是指向数组首尾的两个指针s,e,最后是选定一个基准值temp。基础准备好之后,就可以开始进行算法流程了。
        第一步:令数组的第一个数为基准值
        第二步:,首先判断首指针是否小于尾指针,若首指针大于等于尾指针则进行第四步,否则就继续后面的步骤,尾指针指向的数与基准值进行比较,若基准值小,则尾指针向左移一位且返回到第二步的开头,若基准值大,则将尾指针指向的数值移动到数组的第一个位置里面且进行第三步。
        第三步:首先判断首指针是否小于尾指针,若首指针大于等于尾指针则进行第四步,否则就继续后面的步骤,首指针向右移一位,首指针指向的数与基准值比较,若基准值大,则首指针右移一位且返回到第三步的开头,若基准值小,则将首指针指向的数值移动到尾指针指向的位置里面,返回第二步。
        第四步:将基准值放回到原来的数组。
        第五步:(此时易知,i和j是在一起的,只要i与j仍不在首尾两端就需要继续进行二至四步骤)判断i是否大于首指针,若是,则以j-1为尾指针从新开始上面的步骤,再判断i是否小于尾指针,若是,则以j+1为首指针从新开始上面步骤。
全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务