一.最简单的查找元素方法(依次比较):给一个数组,在数组里面查找某个元素在数组中的位置,并返回它的位置。

public static void main(String[] args) {int arr[] = new int[]{12, 4, 54, 57, 87, 3, 41, 1, 3, 4, 1, 3, 4, 31, 2};getIndex(arr ,54);
}public static int getIndex(int[] arr, int key) {for (int i = 0; i < arr.length; i++) {if (key == arr[i]) {System.out.println("这个数值在数组中,且在第"+(i+1)+"个位置");return i;}}System.out.println("这个数值不在数组中");return 0;
}

特点,通用,但是这个效率太慢,需要从第一个元素依次比较。

二.查找一个数值是否在这个数组里面,若存在返回它所在位置,若不存在它应该有序数组在什么位置:(折半查找)

public class ShuZuFind {public static void main(String[] args) {int arr[] = new int[]{12, 4, 54, 57, 87, 3, 41, 1, 3, 4, 1, 3, 4, 31, 2};for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length-1-i; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}System.out.println(Arrays.toString(arr));getIndex(arr, 54);}public static int getIndex(int[] arr, int key) {int min = 0;int max = arr.length - 1;while (min <= max) {int mid = (min + max) / 2;if (key > arr[mid])min = mid + 1;else if (key < arr[mid])max = mid - 1;else {System.out.println("该数值存在于数组,且在第" + (mid+1) + "位置");return mid;}}System.out.println("该数值不存在于数组,它应该位于第"+(min+1) +"个位置处");return min;}

这里我们先用冒泡算法就行排序,再用折半查找进行索引。我们来看看结果:1.输入54看看结果,

2.输入10看看结果,

3.输入-1看看结果,

三.在上面的基础上,将这个数值按大小放进这个有序数组,生成新的有序数组,看看代码:(插入数值得到新数组)

 //将数值放入数组中,生成新的有序数组
public static void newArr(int[] arr, int mid, int key) {int[] arr02 = new int[arr.length + 1];     //定义一个新数组,大于下标的数后移一位int mid01 = mid-1;arr02[mid01] = mid;for (int i = 0; i < arr02.length; i++) {if (i < mid01) {                       //当下标小于需要插入的位置时,赋原来数组的值arr02[i] = arr[i];} else if (i == mid01)                 //当下标等于需要插入的位置时,赋插入的值arr02[i] = key;else {                                 //当下标大于需要插入的位置时,赋原来数组的值arr02[i] = arr[i - 1];}}System.out.println(Arrays.toString(arr02));
}

得到结果是:

数组不能将数值传给int_java数组查找常见情况相关推荐

  1. c++ 二维数组_C|数形结合理解数组指针、指针数组、一级指针来遍历二维数组

    二维数组本质是也是线性存储的一维数组,各元素都是相对于基地址(首地址)的偏移,只是逻辑上的维度区分而已.或者可以理解为数组的数组,也就是说,n维数组的元素是一个n-1维数组. 需要注意的是,多维数组名 ...

  2. ❤️导图整理数组3: 两数之和II有序数组, 多个有序, 思路全变, 力扣167❤️

    此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), ...

  3. 数组中查找並返回数组_java数组查找常见情况

    一.最简单的查找元素方法(依次比较):给一个数组,在数组里面查找某个元素在数组中的位置,并返回它的位置. public static void main(String[] args) {int arr ...

  4. 数组不能将数值传给int_[day day go]数组

    //数组的定义 func exp() {fmt.Println("//二维数组定义")var arr1 [5]intarr2 := [3]int{1, 2, 3} //冒号等于的定 ...

  5. LeetCode 1712. 将数组分成三个子数组的方案数(前缀和 + 二分查找)

    文章目录 1. 题目 2. 解题 221 / 3117,前7.1% 574 / 9692,前 5.9% 周赛前2题如下: LeetCode 5641. 卡车上的最大单元数(排序,模拟) LeetCod ...

  6. java向有序数组里插数_Java向有序数组中插入一个元素,,使其仍按有序排列,并求出这个插入元素的下标...

    /** * * @create time [2014-4-13] */ public class Test { public static void main(String args[]) { //原 ...

  7. numpy二维数组改变某些数_【每天15分钟,5天学会NumPy】第1天:基本概念

    1.NumPy 的家族 NumPy 是 SciPy 家族的一员,而且是最重要的成员.SciPy 家族(见下图)是一个专门应用于数学.科学和工程领域的开源的Python生态圈.NumPy 最初是 Sci ...

  8. python数组初始化_Python科学计算库Numpy数组的初始化和基本操作

    umPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵 ...

  9. python建立复数数组_深入理解NumPy简明教程---数组1

    目前我的工作是将NumPy引入到Pyston中(一款Dropbox实现的Python编译器/解释器).在工作过程中,我深入接触了NumPy源码,了解其实现并提交了PR修复NumPy的bug.在与Num ...

最新文章

  1. ggplot2笔记7:定位(分面和坐标系)
  2. SAP WM Movement Type 里的‘Ref.Stor.Type Search’字段用法初探
  3. 国内CVPR和图像处理领域的公司和研究机构
  4. 【学习笔记】吴恩达机器学习 WEEK 0
  5. 让你不富都难的28个理财习惯
  6. 知识图谱中的结构信息建模
  7. 通讯工程考研考计算机专业跨度大么,通信工程专业,与自动化专业差别大吗?考研可以跨考吗?...
  8. 简述malloc/free与new/delete的区别
  9. Java选择排序(升序和降序)
  10. 拿破仑,技术大牛晋级管理之后的困境
  11. 机器学习 扬帆起航004-02评估假设与比较检验
  12. 厦大计算机科学复试线,2020年厦门大学信息学院考研复试分数线
  13. chrome浏览器控制台性能监控
  14. 公众号丶服务号丶订阅号三者间的区别
  15. 异构 ? 系统差异应该成为过去式, 专注在应用和数据 - 异构平台整合策略之1 - SSSD
  16. 使用spire.doc实现word文档合并
  17. Leetcode_128_Longest Consecutive Sequence
  18. 解析SQL的表间血缘关系工具
  19. jquery 输入框失去焦点时 (blur)事件
  20. ScreenToGIF工具分享--将视频转成GIF动图

热门文章

  1. 鸿蒙系统和微软,击败苹果和微软,全球第一的操作系统,有望被华为鸿蒙打破垄断...
  2. VSCode工程文件右侧A M U 字母的含义
  3. numpy np.sum()函数(求给定轴上的数组元素的总和)(与ndarray.sum()函数等价)
  4. 王道计算机考研 数据结构 (图-下)
  5. xshell快速发送命令操作多台linux
  6. python对律师的作用_想知道在大家眼中律师的作用是什么
  7. 生命周期 用户可以操作dom_React 生命周期的打怪升级之路
  8. IO流以及他们的种类区别 序列化反序列化 如何实现
  9. 「后端小伙伴来学前端了」CSS3伪元素选择器 ::before ::after | 记录自己的前端学习日子
  10. 《Spring Cloud微服务架构开发实战》_董超笔记