快速排序中的一个问题

发布于 2022-09-05 00:17:07 字数 250 浏览 11 评论 0

在快速排序一开始,我们需要判断left>right,如果成立就退出程序,为啥需要这一步呢,倘若排序中真的出现left>right情况,怎么办,我应该哪卡住了,望能解惑

void quicksort(int left,int right)
{
int i,j,t,temp;

if(left>right)
return;

temp=a[left]; //temp中存的就是基准数
i=left;
j=right;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伴随着你 2022-09-12 00:17:07

left和right两车“相向而行”,当left>right时,表示两车已“相遇”,就不用再继续开了。

记忆之渊 2022-09-12 00:17:07

这点代码逻辑还不完整,所以我的回答可能有些不准确。简答理解:leftright 分别表示数组的左右两端,在一趟快速排序中,left,right会向中间移动,当left>right时表示这一趟排序完成。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文