再次编写折半查找程序

看了看以前写的程序,觉得应该再写一次。

#include<stdio.h>
#include<string.h>

char* find(char *left, char *right,int len)
{
	char k;
	char *mid= left + len / 2;
	printf("k=");
	scanf("%c", &k);
	while ((*mid != *left) && (*mid!=*right))
	{
			len /= 2;
		if (k == *mid)
			return mid;
		else if (k < *mid)
		{
			right = mid;
			mid = left + len/ 2;
		}
		else
		{
			left = mid;
			mid = left + len / 2;
		}
	}
	return NULL;
}

int main()
{
	char arr[] = "123456";
	int len = 0;
	len = strlen(arr);
	printf("%d", find(arr, arr + len - 1, len));
	system("pause");
	return 0;
}
时间: 2024-12-22 10:20:40

再次编写折半查找程序的相关文章

c语言:编写折半查找函数

编写折半查找函数 程序: #include <stdio.h> int binsearch(int x, int arr[], int len)//binsearch 折半,对分 { int left = 0; int right = len - 1; while (left <= right) { int mid = left + (right - left) / 2; if (arr[mid] < x) { left = mid + 1; } else if (arr[mid]

C语言:编写折半查找函数,即二分法

#include<stdio.h>#include <stdlib.h>int main(){     int ret=0;     int arr[]={1,2,5,6,88,99,456,666};     ret= binsearch(666,arr,0,sizeof(arr) / sizeof(arr[0])-1);    if(ret!=-1)   {       printf("%d",ret);      }   else   {      pri

编程成长日记——折半查找

编写一个折半查找函数 #include<stdio.h> //编写折半查找函数 int binsearch(int a,int num[],int b ) { int left=0,right=b-1,mid=0; while(left<=right) {    int mid=(left+right)/2;  if (num[mid]<a) { left=left+1; } else if (num[mid]==a) { return mid; } else { right=mi

再次找的一些C语言题目,关于折半查找和某些种种

首先我们来解释一下折半查找: 1.对一组具有升序(降序)的序列取其中间值,啪一刀斩断, 2.然后就进行比较啦,如果比较等于中间值,返回不解释. 3.如果小于中间值,就将查找范围变成右(左)边. 4.如果大于中间值,就将查找范围变成左(右)边. 5.一直到左边参数大于右边为止咯: ////查找数值 #include <stdio.h> void swap(int v[],int a, int b) {              int temp;             temp = v[a];

C语言之实现函数返回一个数组,以及选择排序,还有折半查找。这是同学的一个作业。。。

作业的具体要求如下: 编写一个完整的程序,实现如下功能.(1)    输入10个无序的整数.(2)    用选择排序法将以上接收的10个无序整数按从大到小的顺序排序.(3)    要求任意输入一个整数,用折半查找法从排好序的10个数中找出该数,若存在,在主函数中输出其所处的位置,否则,提示未找到.提示:可定义input函数完成10个整数的输入,sort函数完成输入数的排序,search函数完成输入数的査找功能. 下面是具体代码:(本人懒,没写注释,不过仔细看代码,还是很简单的) 1 #inclu

折半查找的实现(1010)swust-oj

Description 编写程序实现折半查找算法. Input 第一行是查找表的长度n(11<=n<=100) : 第二行是查找表中的数据元素 : 第三行是要查找的数据元素的关键字. Output 查找成功返回位序,不成功返回-1 ,第二行为比较的次数. Sample Input 115 13 19 21 37 56 64 75 80 88 92100Sample output-1 4 简述: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删

使用XCB编写X Window程序(05):使用异步的方式和X Server通讯及获取和设置窗口的属性

在前面的例子中,我们从来没有关心过调用XCB函数时,该函数和X Server的通讯是同步的还是异步的.因为在前面的例子中,我们基本上不关心XCB函数的返回值,只有在上一篇中,由于某些操作需要关心它们是否成功(比如是否成功打开字体.是否成功创建GC等),才涉及到XCB函数的返回值. 在这一篇中会更进一步,因为是获取窗口的属性,所以肯定要关注从X Server获取的数据,这时,将会涉及到XCB函数同X Server的通讯是同步的还是异步的.什么是同步?就是说调用一个函数向X Server发出一个请求

1014 编写完词法分析程序的感想

经过几个星期的努力,总算把词法分析的程序给完成了,总的来说这是一个坚苦而又漫长的过程.是啊,读了那么多年的书,编写词法分析程序可是第一次呀!看着劳动成果,很欣慰!虽然这不是我一个人做的,是大家的共同努力得来的. 几个星期前,当听到老师布置给我们的这个题目时,我们都蒙了,这么难的题目我们怎么会啊!毕竟我们对那个一无所知,对于老师上课的讲解还能听懂,不过理论与实践之间还是有鸿沟的.我们私下都表示不满,抗议,可是一切都是徒劳,所以我们只能尽我们自己最大的努力把程序给写出来. “也许完成不了!”两个星期

C#6 冒泡 折半查找 二维数组

人类思维--计算机逻辑思维 逻辑思维--代码实现 写书法: 描红--临摹--碑贴--自成一体--草 章节复习: 数组:一维,二维,多维 一维:豆角.连续,同一类型. 定义:数据类型[] 数组名=new 数据类型[长度]{.,.,.,.}; 赋值:数组名[下标] = 值 取值:数组名[下标] 灵活运用:与for循环的结合应用. 1.求最大值,最小值. 2.求总和,平均. 3.随机(生成下标)抽值. 新课: 数组的应用: (一).冒泡排序. 1.冒泡排序是用双层循环解决.外层循环的是趟数,里层循环的