二分排序法~.txt

来自「其中一部分是自己写得,一部分是摘录的,希望站长能批准,我以后一定多多努力上传!」· 文本 代码 · 共 44 行

TXT
44
字号
二分排序法~
int fun(int *num,int l,int h,int x)/*二分查找*/
{
 int mid;
 while(l<=h)
 {
 mid=(l+h)/2;
 if(num[mid]<x&&x<=num[mid+1])
 return (mid+1);
 else if(num[mid]<x)
 l=mid+1;
 else
 h=mid-1;
 }
 return h;
}
void sort(int *num,int n)/*二分排序*/
{int i,j,t,x;
 for(i=1;i<n;i++)
 {
 x=num[i];
 if(num[i]<num[0])
 t=0;
 else
 t=fun(num,0,i,x);
 for(j=i;j>t;j--)
 num[j]=num[j-1];
 num[t]=x;
 }
}

void main()
{
 int num[10],i;
 clrscr();
 printf("please input 10 num: ");
 for(i=0;i<10;i++)
 scanf("%d",&num[i]);
 sort(num,10);
 for(i=0;i<10;i++)
 printf("%6d",num[i]);
 getch();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?