首页 > 其他分享 >习题专题

习题专题

时间:2023-10-08 15:32:42浏览次数:28  
标签:专题 int number mid 查找 arr1 printf 习题

习题3:在有序的元组中查找元素


方法一:利用遍历元组来查找

#include<stdio.h>





//遍历的方法查找元素
int main()
{
	int r = 0;//为查找的数初始化
	printf("请输入要查找的数字:"); scanf("%d", &r);//输入要查找的数字
	int number = r;
	int i = 0;
	char arr1[] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr1) / sizeof(arr1[0]);
	for (i=0;i<=sz;i++)
	{
		if (arr1[i]==number)
		{
			printf("找到了,下标为:%d\n", i);
			break;
		}
	}
	if (i > sz)
		printf("没找到!");
	return 0;
}

    此方法具有缺点: 当元组中元素较多时 会非常繁琐 算法不够完美 当元组中有10000个元素时 最差的情况要查找10000遍,

所以出现了第二种方法。


方法二:利用二分法来查找

#include<stdio.h>

int main()
{
	int number = 0;
	printf("请输入要查询的数字:"); scanf("%d", &number);
	char arr1[] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr1) / sizeof(arr1[0]);
	int left = 0;
	int right = sz - 1;
	while (left<=right)

	{
		int mid = (left + right) / 2;

		if (arr1[mid] > number)
		{
			right = mid - 1;
		}
		else if (arr1[mid] < number)
		{
			left = mid + 1;

		}

		else if (arr1[mid]=number)
		{
			printf("找到了!!下标为:%d", mid);
			break;
		}
		if (left>right)
		{
			printf("没找到");
			break;
		}
			
	}
	return 0;
}

    当元组中有n个元素时  最差的情况要查找 以2为底n的对数 次 优化了算法!!!


请大家多多指教 有问题评论在排评论区.


标签:专题,int,number,mid,查找,arr1,printf,习题
From: https://blog.51cto.com/u_16285697/7757011

相关文章

  • 习题专题
    习题4:演示多个字符从两端移动中间汇聚#include<stdio.h>#include<string.h>#include<windows.h>#include<stdlib.h>intmain(){ intsl=strlen("welcomebit!!!!!!");//strlen()遇到\0会停止!!! chararr1[]="welcomebit!!!!!!"; cha......
  • MySQL专题面试题-二叉树、红黑树、B 树、B+树
    演示网址:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html所谓的索引,就是帮助MySQL高效获取数据的排好序的数据结构,基本都是按照k-v形式存储。1.二叉树 二叉树的每个节点至多只有2个叶子节点,且左边的叶子节点键值比根节点小,右边的叶子节点键值比根节点大。这......
  • oj练习题 数字 eval 整数 int ???
      s=input()if'helloworld!'==s.casefold():print("Yes")else:print("No")    A+B问题II描述亲爱的小朋友们,大家好!今天我们来探讨一下大家都会做的A+B的问题,给你两个数A和B,请你输出这两个数的和。输入输入两个数字,a和b输出输出一个......
  • 笨办法学Python3 习题25 更多更多的训练
    练习内容:将ex25模块导入在终端中手动运行函数查看变化结果退出quit()1defbreak_words(stuff):2"用来分割参数元素"3words=stuff.split('')4returnwords56defsort_words(words):7"用来将参数元素升序排列"8returnsorted......
  • 2310-数组习题
     strlen函数-求字符串长度的,找\0之前出现的字符个数 sizeof-操作符-计算变量/类型所占内存大小,单位是字节答案为A  #include<stdio.h>voidinit(intarr[],intsz){for(inti=0;i<sz;i++)arr[i]=0;}voidprint(intarr[],intsz){......
  • 笨办法学Python3 习题24 更多的练习
    根据书中的PowerShell运行结果,进行仿写 beans,jars,crates=secret_formula(start_point)#函数运算结果存储方式一print(f"We'dhave{beans}beans,{jars}jars,and{crates}crates.") formula=secret_formula(start_point)        #两种函数运......
  • 笨办法学Python3 习题22 到现在为止你学到了什么
    目前为止书中学到,后续继续补充内置函数:print(x)input(x)f"xx{a}xx{b}xx." //''xx{}xx{}xx.''format(a,b) //''xx''a''xx''b''xx.''open(x)//open(x,"w") x.r......
  • 笨办法学Python3 习题21 函数可以返回某些东西
    知识点:函数放在=右边也可以马上被执行调用函数可以和函数结果的变量一起运算关键词 return 的用法脚本函数运行内容:定义函数1(参数1,参数2),打印加法句子,返回加法结果定义函数2(参数1,参数2),打印减法句子,返回减法结果定义函数3(参数1,参数2),打印乘法句子,返回减法结果定义函......
  • 专题2——进阶数据结构
    UVA11997考虑一个简化版,P1631,这个版本使用堆维护即可。这个版本怎么做呢?依次合并每一行。P6033有一个性质,就是每一次合成出来的都是单调递增的,所以每次取出合的和没和的的最小的两个互相比较即可。但是要预先排序,桶排即可。P9565考虑维护\(60\)个并查集,也就是维护对于每......
  • 专题1——贪心
    P9209考虑一个贪心,首先一定总是只有一段连续段。所以答案就是这个样子了。\[\sumw_i+(n-i)\max(l_i,r_i)\]CF1661D从右往左扫一遍,要加就加最牛逼的。维护问题的二阶差分即可。P9378哦宇宙射线!贪心一下,每次让最脆弱的被轰掉。AT_abc254_h问题是相对的,然后考虑优先队列......