急!急! 输入一组数据,完成这组数据的排序并用二分算法实现查找!《用c语言编写》

排序和查找均用自定义函数独立完成哦

你好: 下边是程序代码,希望对你有帮助!#include <stdio.h>
void bubble(int *a,int n) /*定义两个参数:数组首地址与数组大小,冒泡法*/
{
int i,j,temp;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++) /*注意循环的上下限*/
if(a[i]>a[j]) {
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
} int serch(int x,int v[],int n) /*二分法查找--x=要找的数,v[]=数组名,n=数组长度*/
{
int low,mid,high;
low = 0;
high = n-1;
while(low<=high){
mid=(low+high)/2;
if(x<v[mid])
high = mid-1;
else if(x>v[mid])
low = mid+1;
else if(x==v[mid])
return mid;
}
return -1;
}main()
{
int i,a[10],n;
printf("请输入十个整数:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
bubble(a,10);
printf("\n排序后:");
for(i=0;i<10;i++)
{
printf("%5d",a[i]);
} printf("Please input the number:\n");
scanf("%d",&n);
printf("This number is a[%d]!\n",serch(n,a,10));getch();
}
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言如何实现-数组排序,二分查找
y=clock();printf("二分查找:\\n");while(!find2&&left<right){ mid=(left+right)\/2;if(x==a[mid])find2=1;else if(x

用C语言编写函数实现快速排序(升序),在主函数中输入数组数据,并调用该...
bool merge(int * array,int p,int q,int r){ if(!(p<<q<r)&&p>=0&&r<=sizeof(array)\/sizeof(array[0])-1){ return false;} int * left =new int[q-p+1];int * right=new int[r-q];memcpy(left,array+p,sizeof(int)\/sizeof(char)*(q-p+1));memcpy(right,array+q...

用C语言编写顺序查找和二分查找(折半查找)
顺序查找:在一个已知无序队列中找出与给定关键字相同的数的具体位置。原理是让关键字与队列中的数从第一个开始逐个比较,直到找出与给定关键字相同的数为止。复杂度为o(n).二分查找又称折半查找,它是一种效率较高的查找方法。【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排...

...有序顺序表顺序查找、二分查找算法。用c语言。高分急求!
int low=0,high=b-1,mid,i;int s=n\/b; \/\/每块记录个数 while(low<=high){ \/\/在索引表中进行二分查找,找到的位置放在low中 mid=(low+high)\/2;if(index[mid].key<k) low=mid+1;else high=mid-1;} if(low<b){ \/\/在顺序表中顺序查找 for(i=index[low].link;i<=index[l...

如何用c语言编写一个程序,实现按从大到小的顺序排序输出10个数_百度知...
用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:include<stdio.h> int main(){ int i,j,a[10],t;printf("输入数");for (i = 0; i < 10; i++)scanf("%d",&a[i]);for (i = 0; i < 10; i++){ for (j = i + 1; j < 10;j...

编写C语言程序,把一个数组按从小到大的次序排列起来
for (i = 0; i <= 9; i++)\/\/用循环输入数值给数组number并赋给数组New_number { scanf("%d", &number[i]);\/\/输入10个整形数字到数组中 New_number[i] = number[i];\/\/数组number元素赋给数组New_number } for (n = 0; n <= 8; n++)\/\/要进行(10-1)组比较 for (j = 0;...

要求用c语言编写,将总分排序(由高到低),并按总分从高到低输出成绩表_百...
printf("第%d门功课的平均成绩:%.2f\\n",i+1,mean[i]*1.0\/num);} } void sortmean(int num)\/\/按学生平均分由小到大排序 { student temp;int i,j;int maxt,index;for(i=0;i<num-1;i++){ index=i;maxt=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];for(j=i+...

C语言的题用函数实现数组数据的增加,删除,修改,查找和排序
int value){ arr[index] = value; return;}void search(int index){ printf("%d\\n", arr[index]); return;}void BubbleSort(int count){ int i, j; for(i = 0; i < count; i++) { for(j = count - 1; j > i; j--) { if(arr[j] < ar...

用C语言编写非递归算法实现折半查找(二分查找)
int a[] = { 1,3,5,7,9,11,13,15,17,19 };int* p1, *p2;p1 = binary_search( a, a + 10, 9 );p2 = binary_search( a, a + 10, 8 );if ( p1 ) { printf( "find %d at pos:%d\\n", 9, p1 - a );} if ( !p2 ) { printf( "can't find value %d\\n",...

...用户输入10个整数,对其按照从小到大的顺序排序,并输出结果。_百度知 ...
至于printf()函数,它是C语言中非常重要的格式化输出工具,它允许我们根据预设的格式控制字符串来定制输出内容。在这个程序中,它用于接收用户输入、显示排序结果以及输出控制信息。总结,通过以上步骤,C语言程序就能实现用户输入10个整数并按顺序输出的功能,同时利用printf()函数进行格式化输出和数据交换。

相似回答
大家正在搜