折半排序
要求:从键盘上输入一个10位数,用折半排序法进行排序?(用C语言)
要求:从键盘上输入一个10位数,用折半排序法进行排序?(用C语言)
什么叫那个?
是不是逆序?
#include<stdio.h>
void main()
{ int i,a;
printf("请输入一个10位数\n");
scanf("%d",&a);
for(i=1;i<=10;i++)
{
printf("%d",a%10);
a/=10;
}
}
什么叫那个?
是不是逆序?
#include<stdio.h>
void main()
{ int i,a;
printf("请输入一个10位数\n");
scanf("%d",&a);
for(i=1;i<=10;i++)
{
printf("%d",a%10);
a/=10;
}
}
你弄错了...不是说让这个数反过来,而是要一组数排序,只是用折半的方法.
楼主懂什么叫折半查找吗?
所谓折半就是每次查找都可以消除一半的查询数据.折半要建立在已经有序的序列基础上.
比如原序列是:1 5 7 9 12 34.
现在要查找9,则
mid=(0+5)/2=2; //在0和5之间查找
a[2]==7<9;
mid=(3+5)/2=4; //在3和5之间查找
a[4]=12>9;
mid=(3+4)/2=3;//在3和4之间查找
a[3]=7==7 //查找成功,如果现在a[3]!=7,则说明查找失败.
明白了,谢谢啦!