二分法排序顺序表的排序,二分法查找的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);
}
WHloud Date(鲸云数据),原做大数据和软件开发的团队,现在转变成云计算服务,面对海内外用户提供中国大陆,韩国,日本,香港等多个地方节点服务。24*7小时的在线支持,较为全面的虚拟化构架以及全方面的技术支持!官方网站:https://www.whloud.com/WHloud Date 韩国BGP云主机少量补货随时可以开通,随时可以用,两小时内提交退款,可在工作日期间全额原路返回!支持pa...
官方网站:点击访问王小玉网络官网活动方案:买美国云服务器就选MF.0220.CN 实力 强 强 强!!!杭州王小玉网络 旗下 魔方资源池 “我亏本你引流活动 ” mf.0220.CNCPU型号内存硬盘美国CERA机房 E5 2696v2 2核心8G30G总硬盘1个独立IP19.9元/月 续费同价mf.0220.CN 购买湖北100G防御 E5 2690v2 4核心4G...
totyun,新公司,主要运作香港vps、日本vps业务,接入cn2网络,不限制流量!VPS基于KVM虚拟,采用系统盘和数据盘分离,从4G内存开始支持Windows系统...大家注意下,网络分“Premium China”、“Global”,由于站长尚未测试,所以也还不清楚情况,有喜欢吃螃蟹的尝试过不妨告诉下站长。官方网站:https://totyun.com一次性5折优惠码:X4QTYVNB3P...
二分法排序为你推荐
windowsmedia电脑程序打开方式变成Windows Media Player怎么改回来东兴证券网站东兴证券交易软件如何操作?flex是什么Adobe旗下的软件分别是干什么的?网页背景音乐代码网站背景音乐HTML代码ibooks支持什么格式iPhone4的ibooks怎么导入电子书 还有支持什么格式测试post请列出计算机上电自检(POST)的基本过程是什么?android权限大全android获取安装程序的详细权限列表linux启动盘制作工具linux下有没有制作u盘启动盘的东西98系统98的系统怎么安?ps文字处理ps中怎么处理文字?
中国域名注册 域名查询系统 域名解析文件 互联网域名管理办法 腾讯云数据库 网站挂马检测工具 铁通流量查询 刀片式服务器 稳定免费空间 服务器监测 英国伦敦 smtp服务器地址 德隆中文网 杭州电信宽带优惠 114dns 广东主机托管 买空间网 双十二促销 阿里云邮箱怎么注册 xshell5注册码 更多