正文
c语言用函数实现顺序查找 c语言用函数排序
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
用C语言编写顺序查找和二分查找(折半查找)
#include stdio.h
#define LENGTH 20
void SequenceSearch(int *fp,int Length);
void Search(int *fp,int length);
void Sort(int *fp,int length);
void main()
{
int count;
int arr[LENGTH];
printf("请输入你的数据的个数:\n");
scanf("%d",count);
printf("请输入%d个数据\n",count);
for(int i=0;icount;i++)
{
scanf("%d",arr[i]);
}
int choise=0;
do
{
printf("1.使用顺序查询.\n2.使用二分查找法查找.\n3.退出\n");
scanf("%d",choise);
if(choise==1)
SequenceSearch(arr,count);
else if(choise==2)
Search(arr,count);
else if(choise==3)
break;
} while (choise==1||choise==2||choise==3);
}
void SequenceSearch(int *fp,int Length)
{
int data;
printf("开始使用顺序查询.\n请输入你想要查找的数据.\n");
scanf("%d",data);
for(int i=0;iLength;i++)
if(fp[i]==data)
{
printf("经过%d次查找,查找到数据%d.\n",i+1,data);
return ;
}
printf("经过%d次查找,未能查找到数据%d.\n",i,data);
}
void Search(int *fp,int length)
{
int data;
printf("开始使用顺序查询.\n请输入你想要查找的数据.\n");
scanf("%d",data);
printf("由于二分查找法要求数据是有序的,现在开始为数组排序.\n");
Sort(fp,length);
printf("数组现在已经是从小到大排列,下面将开始查找.\n");
int bottom,top,middle;
bottom=0;
top=length;
int i=0;
while (bottom=top)
{
middle=(bottom+top)/2;
i++;
if(fp[middle]data)
{
bottom=middle+1;
}
else if(fp[middle]data)
{
top=middle-1;
}
else
{
printf("经过%d次查找,查找到数据%d.\n",i,data);
return;
}
}
printf("经过%d次查找,未能查找到数据%d.\n",i,data);
}
void Sort(int *fp,int length)
{
printf("现在开始为数组排序,排列结果将是从小到大.\n");
int temp;
for(int i=0;ilength;i++)
for(int j=0;jlength-i-1;j++)
if(fp[j]fp[j+1])
{
temp=fp[j];
fp[j]=fp[j+1];
fp[j+1]=temp;
}
printf("排序完成!\n下面输出排序后的数组:\n");
for(int k=0;klength;k++)
{
printf("%5d",fp[k]);
}
printf("\n");
}
c语言顺序查找
在这个程序中,输入的10个数字,是以空格 隔开的。如果想用逗号隔开,会比较麻烦。
既然上面是空格隔开的,下面倒数第三行printf("%d in %d",key,i);key和i用空格隔开不用逗号是不行的。这是程序语句规定的,各输出项之间必须要用逗号分隔。这个与上面所说的运行时输入各数据用什么分隔(它是可以指定的)是两码事。
c语言顺序查找法
如果是在已有n个元素的数组a中顺序查找值为x的元素,以下是实现查找的函数代码,查找成功则返回此元素的位置,否则返回-1:
int find(int a[],int n,int x)
{int i;
for(i=0;ina[i]!=x;i++);
return in?i:-1;
}
如何用C语言顺序查找程序?
#includestdio.h
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int i,x,y;
printf("输入c语言用函数实现顺序查找你要查找的数:\n");
scanf("%d",x);
y=0; //标记是否已找到,y=1表是找到了,y=0表示没找到
for(i=0;i10;i++) //循环,把x和数组中的元素一个个比较
{
if(x==a[i]) //如果x=a[i]说明已经找到
{
y=1; //把y变成1c语言用函数实现顺序查找,说明已经找到了
printf("你要查找的数%d在第个%d位置\n",x,i+1); //输出找到的相关信息
break; //跳出循环
}
}
if(y==0)printf("无法找到你要查找的数\n"); //y=0表示找不到
}
c语言排序和查找?
1)利用readData()函数从data1.txt中读入不同规模的数据存入数组,
编写基于数组的顺序查找算法,测试数据量为1万、5万、10万、20万、
30万、40万和50万时的数据查询时间。
算法代码如下:

1 int seqsearch(int a[],int n,int key)
2 {
3 int k=n-1;
4 while(k=0a[k]!=key)
5 k--;
6 return (k);
7 }

2)利用readData()函数从data2.txt中读入不同规模的有序数据存入数组,
编写基于数组的二分查找算法,测试数据量为1万、5万、10万、20万、30万、
40万和50万时的数据查询时间。
算法代码如下:

1 int binSearch(int a[],int n,int key)
2 {
3 int low=0;
4 int high=n-1;
5 int mid;
6 while(low=high)
7 {
8 mid=(low+high)/2;
9 if(a[mid]==key) return mid;
10 if(a[mid]key)
11 high=mid-1;
12 else
13 low=mid+1;
14 }
15 return -1;
16 }

3)请设计冒泡排序算法函数void bubbleSort(int a[],int n),对a[1]..a[n]进行升序排序。
并测试在不同数据规模下的排序效率。
算法代码如下:

1 void bubbleSort(int a[],int n)
2 {
3 int i=1,j,flag=1;
4 while(i=n-1flag)
5 {
6 flag=0;
7 for(j=1;j=n-1-i;j++)
8 if(a[j+1]a[j])
9 {
10 a[0]=a[j];
11 a[j]=a[j+1];
12 a[j+1]=a[0];
13 flag=1;
14 }
15 i++;
16 }
17 }

关于c语言用函数实现顺序查找和c语言用函数排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。