我是靠谱客的博主 玩命高山,这篇文章主要介绍快排,保证最坏情况下,栈的深度为log(n),现在分享给大家,希望可以做个参考。

《计算机程序设计艺术》的算法:

1,保持2个指针i,j,开始i=2,j=N

2,如果Ri划分后最终要成为左子文件的一部分(通过比较Ki,Kl知道),i+=1;,

 继续进行知道遇到一个属于右子文件的基类Ri为止;

3,类似,j-1知道遇到属于左子文件的记录Rj为止。

4,如果i<j,交换Ri,Rj,然后以同样方式处理下一记录,“两头点蜡”直到i>=j.

5,通过交换Rj,Rl,最终完成划分。

图示

  
 

分析:每次划分这个文件,把较长的子文件压入栈,并对另一个较短的子文件进行工作,直到得到容易排序的短文件为止。

可以确保栈绝不包含多于lgN个项目。

最后

以上就是玩命高山最近收集整理的关于快排,保证最坏情况下,栈的深度为log(n)的全部内容,更多相关快排,保证最坏情况下,栈内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部