《快速排序》为什么写法一答案错误
  • 板块学术版
  • 楼主魏老师
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/11/27 09:05
  • 上次更新2023/11/27 16:05:32
查看原帖
《快速排序》为什么写法一答案错误
285961
魏老师楼主2023/11/27 09:05

写法一:答案错误

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);
}

写法二:正确

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);
}
2023/11/27 09:05
加载中...