二分法排序顺序表的排序,二分法查找的c语言程序
二分法排序 时间:2021-06-26 阅读:(
)
c语言中的二分法查找是什么
是一种数据处理的算法。
常用与排序。
例如
int a,b=4,calc;
int sum[]={1,2,3,4,5,6,7,8,9}; //这样一个数组
scanf(a);
for(calc=0;calc<9;calc++)
{
if(a<sum[b])
{
b=b/2;
if(a<sum[b])
{
printf("这个数按照升序排序位置是在" , b+1);
}
}else
{
b=b*2;
if(a<sum[b])
{
printf("这个数按照升序排序位置是在",b+1);
};
};
};
取一段数的中间数,来与已知的数来比较。
来确定在数的前方还是后方,再重复以上比较。
最后确定在一列排序完成的数集合中的位置。
【写的存在问题。
】因为在考试,时间有限。
C++ 分治法排序
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
typedef int* IntPtr;
void Merge(int A[],int p,int q,int r)
{
int M=999999999;
int n1,n2;
n1=q-p+1;
n2=r-q;
IntPtr L,R;
L=new int[n1+1];
R=new int[n2+1];
int i,j,k;
for(i=1;i<=n1;i++)
L[i]=A[p+i-1];
for(j=1;j<=n2;j++)
R[j]=A[q+j];
L[n1+1]=M;
R[n2+1]=M;
i=1;
j=1;
for (k=p;k<=r;k++)
{
if(L[i]<=R[j])
{
A[k]=L[i];
i++;
}
else
{
A[k]=R[j];
j++;
}
}
}
void Mergesort(int A[],int p,int r)
{
int q;
if(p<r)
{
q=(p+r)/2;
Mergesort(A,p,q);
Mergesort(A,q+1,r);
Merge(A,p,q,r);
}
}
void main()
{
int A[10];
srand(time(0));
for (int i=0;i<10;i++)
{
A[i]=rand();
cout<<A[i]<<endl;
}
cout<<endl;
Mergesort(A,0,9);
for (int j=0;j<10;j++)
{
cout<<A[j]<<endl;
}
}
看看怎样顺序表的排序,二分法查找的c语言程序
#include
int fun(int a[],int n,int key)
{i
nt low,mid,high;//low、mid、high是三个索引分别指向数组的下标low=0;//low指向数组a[]的第一个元素,即下表为0的元素
high=n-1;//lhigh指向数组a[]的最一个元素,即下表为n-1的元素,n为数组的长度
while(low<=high)//循环终止条件是low>high的时候
{
mid=(low+high)/2;//所谓二分查找就在这里,每次都让mid指向数组下标等于low和high之和的一半的元素i
f(keya[mid])//这里同理,如果a【mid】小于要查找的元素,说明要查找的元素在mid和high之间,这是需要把low重新置为mid+1
(low=mid+1);
else
return mid;//剩下的就是相等的情况,直接返回mid就是查找到的结果
}
return -1;//执行到这一步就说明,low>high,没有找到要查找的元素,返回-1表示没有结果
}
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int a,b,c;
b=4;
c=fun(a,10,b);
if(c==1)
printf("not found");
else
printf("psition %d
",c);
}
近期RAKsmart上线云服务器Cloud Server产品,KVM架构1核1G内存40G硬盘1M带宽基础配置7.59美元/月!RAKsmart云服务器Cloud Server位于美国硅谷机房,下单可选DIY各项配置,VPC网络/经典网络,大陆优化/精品网线路,1-1000Mbps带宽,支持Linux或者Windows操作系统,提供Snap和Backup。RAKsmart机房是一家成立于2012年...
DMIT,最近动作频繁,前几天刚刚上架了日本lite版VPS,正在酝酿上线日本高级网络VPS,又差不多在同一时间推出了美国cn2 gia线路不限流量的美国云服务器,不过价格太过昂贵。丐版只有30M带宽,月付179.99 美元 !!目前美国云服务器已经有个4个套餐,分别是,Premium(cn2 gia线路)、Lite(普通直连)、Premium Secure(带高防的cn2 gia线路),Prem...
HostKvm 商家我们算是比较熟悉的国内商家,商家主要还是提供以亚洲数据中心,以及直连海外线路的服务商。这次商家有新增香港和俄罗斯两个机房的高防服务器方案。默认提供30GB防御,且目前半价优惠至4.25美元起步,其他方案的VPS主机还是正常的八折优惠。我们看看优惠活动。香港和俄罗斯半价优惠:2021fall,限购100台。通用优惠码:2021 ,八折优惠全部VPS。我们看看具体的套餐。1、香港高...
二分法排序为你推荐
bean是什么意思bean是可数名词还是不可数名词,为什么windowsmediawindows media player 是什么啊素数算法什么是素数算法动态图片格式常见的动态图像文件格式有哪些?flash实例flash CS3 实例的属性面板里的实例名称是指什么暴力破解rar求暴力破解rar压缩包软件暴力破解rar怎么暴力破解rar密码?快速且有效的webservice框架java Webservice都有哪几种方式啊,哪种方式比较好啊云输入法QQ云输入法怎样调整候选词的个数?selectintoACCESS中提示“不允许在select into语句中使用多值字段”
重庆虚拟主机 华众虚拟主机管理系统 香港服务器租用 香港vps主机 vps交流 最新代理服务器ip 域名备案流程 怎样申请域名 raksmart 256m内存 国内加速器 商家促销 网通服务器ip 三拼域名 免空 php空间推荐 域名转接 刀片式服务器 昆明蜗牛家 idc查询 更多