首页 > 其他分享 >C练习——二分法查找有序数组

C练习——二分法查找有序数组

时间:2023-12-21 19:55:42浏览次数:27  
标签:return 数组 int 二分法 查找 arr1

// 使用 二分法 折半查找,每次查找少一半数据,效率高
#include <stdio.h> int subscript(char arr[], int x, int y) { int left = 0; int right = x - 1; while (left <= right) { int mid = left + (right - left) / 2; if (arr[mid] < y) { left = mid + 1; } else if (arr[mid] > y) { right = mid - 1; } else { return mid; } } return -1; } //输入:数组,数组长度,6 //返回:6的下标, 无则-1 int main() { int k = 6; char arr1[] = { 1,2,3,4,5,6,7,8,9,10 }; int sz = sizeof(arr1) / sizeof(arr1[0]); printf("数组元素个数%d\n", sz); int res = subscript(arr1, sz, k); printf("6的下标:%d\n", res); return 0; }

 

标签:return,数组,int,二分法,查找,arr1
From: https://www.cnblogs.com/xiaowanglong/p/17917133.html

相关文章

  • JavaScript 数组方法重写
    constlist=[1,2,3]Array.prototype.myForeach=function(fn){for(leti=0;i<this.length;i++){fn(this[i],i,this)}}Array.prototype.myMap=function(fn){const_list=[]for(leti=0;i<this.length;i......
  • 无涯教程-Go - 多维数组函数
    Go编程语言允许多维数组,这是多维数组声明的一般形式-varvariable_name[SIZE1][SIZE2]...[SIZEN]variable_type如,以下声明创建了三维5、10、4个整数数组-varthreedim[5][10][4]int二维数组二维数组是多维数组的最简单形式,本质上,二维数组是一维数组的列表,要声明大小为[x......
  • Java文件与byte数组
    读取Java文件到byte数组的三种方式一、FileUtils.javaimportjava.io.BufferedInputStream;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.RandomA......
  • class071 子数组最大累加和问题与扩展-下【算法】
    class071子数组最大累加和问题与扩展-下【算法】code1152.乘积最大子数组//乘积最大子数组//给你一个整数数组nums//请你找出数组中乘积最大的非空连续子数组//并返回该子数组所对应的乘积//测试链接:https://leetcode.cn/problems/maximum-product-subarray/因为有......
  • class070 子数组最大累加和问题与扩展-上【算法】
    class070子数组最大累加和问题与扩展-上【算法】code153.最大子数组和//累加和最大子数组和//给你一个整数数组nums//请你找出一个具有最大累加和的非空子数组//返回其最大累加和//测试链接:https://leetcode.cn/problems/maximum-subarray/dp[i]:以i结尾的子数组[…......
  • [LeetCode] LeetCode852. 山脉数组的顶峰索引
    题目描述思路:用二分进行排除不满足条件的元素,最后剩下的元素即为答案往常我们使用「二分」进行查值,需要确保序列本身满足「二段性」:当选定一个端点(基准值)后,结合「一段满足&另一段不满足」的特性来实现“折半”的查找效果。但本题求的是峰顶索引值,如果我们选定数组头部或者尾......
  • rabbitmq listener注解@RabbitListener里的queues是个数组,你用了吗?
    靠谱的程序员具有注重实效的偏执,对于重复多行的代码,总会想办法消除重复。我们zhongtai-channel里在调用服务商接口发起签约前,使用了mq进行异步处理。即:zhongtai-channel签约RPCAPI接收到上游的请求后,先同步持久化保存签约请求流水,然后将签约数据放入rabbitmq消息队列,等待程序里......
  • 33.最长连续子数组
    1.题目介绍33.最长连续子数组给定一个由若干0和1组成的数组A,我们最多可以将K个值从0变成1,返回仅包含1的最长(连续)子数组的长度时间限制:C/C++1秒,其他语言2秒空间限制:C/C++256M,其他语言512示例1输入例子:[1,1,1,0,0,0,1,1,1,1,0],2输出例子:6例子说明:可以将......
  • 深入c语言中的数组
    在C语言中,数组是一种非常重要的数据结构,它可以用来存储一系列相同类型的数据。数组在C语言中被广泛应用于各种算法和数据处理中,因此了解和掌握数组的使用是非常重要的。数组的声明和初始化在C语言中,数组的声明和初始化非常简单。我们可以通过以下语法来声明和初始化一个数组:intarr......
  • 数组属性和方法
    什么叫数组?在JavaScript中,数组不是基本类型,而是具有以下核心特征的Array对象:JavaScript数组是可调整大小的,并且可以包含不同的数据类型。(当不需要这些特征时,可以使用类型化数组。)JavaScript数组不是关联数组,因此,不能使用任意字符串作为索引访问数组元素,但必须使用非负整数(......