本蒟蒻想着学了折半排序来用代码实现一下的,感觉自己的这个程序逻辑上没问题,但就是运行不出结果,希望各位dalao救我一命orz
using namespace std;
int main()
{
int a[10],n,temp,left,right,mid,c;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
for(int j=1;j<n;j++)
{
temp=a[j];
left=0;
right=j;
while(left<=right)
{
mid=(left+right)/2;
if(temp>=a[mid])
{
left=mid+1;
}
if(temp<a[mid])
{
right=mid-1;
}
}
c=mid;
while(mid<=c&&c<=j-1)
{
a[c+1]=a[c];
}
a[mid]=temp;
}
for(int m=0;m<10;m++) cout<<a[m]<<" ";
return 0;
```}