首页 > 其他分享 >查找数组中元素

查找数组中元素

时间:2022-10-09 09:47:43浏览次数:48  
标签:Set 元素 number Write middle flag 查找 right 数组

对于任意一个数组,不知道是无序还是有序,查找是否有元素,那比较保险的方法就是遍历。

伪代码

对于任何一个数组:

Write "Please input the sum  "
Read n Integer number[n] Write "Enter integer numbers, one per line" Set position to 0 While(position < n) Read in numbers[position] Set position to position + 1 Write "Search " Read search Set i to 0 Set flag to 0 While(i < n) If(search == number[i]) Write "The number is in the array." Set flag to 1
     Break
If(fiag == 0) Write "The number is not in the array."

如果数组有序,那么就会好找不少。这里不妨假设数组number[n]是由小到大排序的,只需将搜索改成改成如下:

Set left to 0
Set right to n - 1
Set middle to (left ADD right) DIV 2
Set flag to 0
While(left < middle && middle < right)
    If(search < number[middle])
        Set right to middle
        Set middle to (left ADD right) DIV 2
    Else If(search > number[middle])
        Set left to middle
        Set middle to (left ADD right) DIV 2
    Else If(search == number[middle])
        Set flag = 1
        Break
If(flag)
    Write "The number is not in the array."
Else If(flag)
    Write "The number is in the array."

采用二分法,能极大提高搜素速度。

这里个人手动走代码测试了一下

 

 

 

 

 

 结果算是比较正确了。就是手动走代码有点累。

标签:Set,元素,number,Write,middle,flag,查找,right,数组
From: https://www.cnblogs.com/Joci-zhuoxue/p/16771037.html

相关文章

  • 顺序查找和二分查找
     案例1):1#include<stdio.h>23intseqSearch(intarr[],intarrLen,intval){//定义一个数组,一个数组长度,目标值4for(inti=0;i<arrLen;i++)......
  • LeetCode算法笔记 53. 最大子数组和
    给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums=[-2,1,-3,4,-1,2......
  • 树状数组
    引入问题给出一个长度为n的数组,完成以下两种操作:将第i个数加上k输出区间[i,j][i,j]内每个数的和朴素算法单点修改:O(1)O(1)区间查询:O(n)O(n)使用树状数组单点修......
  • LeetCode算法笔记 217. 存在重复元素
    给你一个整数数组nums。如果任一值在数组中出现至少两次,返回true;如果数组中每个元素互不相同,返回false。示例1:输入:nums=[1,2,3,1]输出:true示例2:输入:nums=......
  • ajax 传递一个数组
    (一)java后端publicStringgetTextContent(@RequestParam(name="titleId")IntegertitleId,HttpSessionsession){//取答案//获取题目问题信息Midautumn2022Entity......
  • 查找
    查找查找元素伪代码穷举法BeginSetnum[length]tosomenumberSettargetSetito0readtargetwhile(i<length)doif(num[i]==......
  • 最简单的算法- 二分查找
    java代码/***Createdbyfupengon2017/1/11.*/publicclassbinarySearchpublicstaticlongbinarySearch_a(long[]src,intkey){intlo=0;......
  • 牛客网高频算法题系列-BM17-二分查找-I
    牛客网高频算法题系列-BM17-二分查找-I题目描述请实现无重复数字的升序数组的二分查找给定一个元素升序的、无重复数字的整型数组nums和一个目标值target,写一个函......
  • PHP 多维数组排序学习
    <?php$content_a['score']=3;$content_a['name']='3name';$content_b['score']=6;$content_b['name']='3name';$list1[]=$content_a;$list1[]=$content_b;print......
  • day11 -数组
    数组特点长度确定。一旦被创建大小不可以改变其元素必须是相同类型,不允许出现混合类型元素可以是任何数据类型,包括基本类型和引用类型数组变量属于引用类型,数......