社区讨论

《快速排序》为什么写法一答案错误

学术版参与者 3已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lpgdodww
此快照首次捕获于
2023/11/27 11:57
2 年前
此快照最后确认于
2023/11/27 16:05
2 年前
查看原帖
写法一:答案错误
CPP
void binary_Search(int l,int r)
{  
    int k=l,q=r,s=(l+r)/2;
    while(k<=q)
    {
    	while(a[k]>a[s]) k++;
    	while(a[q]<a[s]) q--;
    	if(k<=q)
    	{
    		swap(a[k],a[q]); 
    		k++; q--;
		}
	}
    if(l<q) binary_Search(l,q);
	if(r>k) binary_Search(k,r);
}
写法二:正确
CPP
void binary_Search(int l,int r)
{  
    int k=l,q=r,s=a[(l+r)/2];
    while(k<=q)
    {
    	while(a[k]>s) k++;
    	while(a[q]<s) q--;
    	if(k<=q)
    	{
    		swap(a[k],a[q]); 
    		k++; q--;
		}
	}
    if(l<q) binary_Search(l,q);
	if(r>k) binary_Search(k,r);
}

回复

6 条回复,欢迎继续交流。

正在加载回复...