题解 | #排序#

排序

http://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896

快速排序思路:确定一个基准数,让这个基准数的左边全部小于它,右边的数全部大于它! 这样就分出了左边区间和右边区间。然后分别又对这两个区间一样的步骤。

代码实现思路:
1)确定一个基准数(通常取参与排序的首个元素)
2)定义两个指针,一个头,一个尾。分别指向头元素和尾元素
while(头指针<尾指针){
3)先从尾指针看。如果尾指针指向的元素>=基准数,就尾指针--;当条件不成立时,就将尾指针指向的元素放到头指针的位置。即 数组[头]=数组[尾];
4) 只要交换了位置,就变换看法。现在从头指针看,同样的,头指针指向的元素<=基准数,就头指针++;当条件不成立时,就将头指针指向的元素放到尾指针位置。即 数组[尾]=数组[头];
}
// 当程序退出while循环,说明头指针和尾指针碰到了一起,同时已经将这个基准数的左边全部小于大,右边全部大于它。
// 此时就将基准数放入到属于它位置的地方
数组[头指针/尾指针]=基准数;
递归左区间
递归右区间

全部评论

相关推荐

想申请延毕了,找工作找到崩溃,越找就越想摆烂,还有25届的和我一样感受吗?
码农索隆:没事哒,好兄弟,慢慢来,调整心态,车到山前必有路,感到迷茫的时候,多抬头看看
点赞 评论 收藏
分享
牛客773130651号:巨佬,简历模板换成上下的,左右的很烦,hr看着不爽。。。科大随便乱杀,建议能保研就保研,不行也得考一下 ,985硕去干算法,比开发强多了。开发许多双非都能搞,学历优势用不上,算法有门槛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务