数组的定义与使用(数组案例:二分查找法)|学习笔记

简介: 快速学习 数组的定义与使用(数组案例:二分查找法)

开发者学堂课程【【名师课堂】Java面向对象开发:数组的定义与使用(数组案例:二分查找法)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/371/detail/4440


数组的定义与使用(数组案例:二分查找法)


目录:

一、定义

二、使用

 

一、定义

要求在一个指定的数组中查询一个数据的位置。最简化的实现,整体数组遍历。

public class ArrayDemo{

public static void main(String args[]){

lnt data[] = new int [] {1,2,3,4,5,6,7,8} ;

lnt search = 7(输入需要查找的数值) ;

System.out.println(index(data,search));}编译执行

}

public static int index(int arr[],int key){

for(int x=0 ; x< arr.length ; x ++){

if(arr[x]== key){

return x ;

}

}

Return -1;

}

}

这个时间复杂度是 n,意思是所以的数组中的数据都需要进行一次遍历,遍历=循环,才能够确认所需要查找的数据是否存在。如需进行更快速的查找方法,最好的做法是进行二分查找(折半查找)。

 

二、使用

二分查找(前提:数组排序)图片1.png

范例:实现二分查找(采用方法递归操作完成)

Public class ArrayDemo{

public static void main(String args[]){

int data[] = new int [] {1,2,3,4,5,6,7,8} ;

int search =7 ;

System.out.println(binarySearch(date,0,data.length,-1,search));}

public static int binnarySearch(int arr[],int from,int to,int key){

If (from<to){

int mid = (from / 2)+(to / 2); //确定中间点

if(arr[mid]==key) { //数据找到了

return mid; //取得当前索引

} else if(key<arr[mid]){

return binarySarch(arr,from,mid-1,key);

} else if (key>arr[mid]) {

return binarySarch(arr,from,mid+1,key);}

}

}

return-1 ;

}

编译执行输入:

D:\mydeo>javac ArrayDemo.java

D:\mydeo>javac ArrayDemo

-1

D:\mydeo>

输入(更改)数字查找

以上主要是属于数据结构,考验逻辑思维。

相关文章
|
2月前
|
Java 容器
07 Java数组与数组操作(定义+遍历+排序+增删改查)(上)
07 Java数组与数组操作(定义+遍历+排序+增删改查)
35 8
|
2月前
|
存储 Java API
07 Java数组与数组操作(定义+遍历+排序+增删改查)(下)
07 Java数组与数组操作(定义+遍历+排序+增删改查)
32 4
|
2月前
|
算法 索引 Python
【Leetcode刷题Python】34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
解决LeetCode "在排序数组中查找元素的第一个和最后一个位置" 问题的方法。第一种方法是使用两次二分查找,首先找到目标值的最左边界,然后找到最右边界。第二种方法是利用Python的list.index()方法,先正序找到起始位置,再逆序找到结束位置,并给出了两种方法的Python实现代码。
47 0
|
5月前
指针的基础应用(数组的颠倒和排序,二维数组的表示)
指针的基础应用(数组的颠倒和排序,二维数组的表示)
29 0
|
5月前
|
算法 索引
从数组中查找特定元素的顺序程序设计示例
从数组中查找特定元素的顺序程序设计示例
25 0
|
5月前
Qsort函数实现对各类型数组中元素的排序(思路简单)
Qsort函数实现对各类型数组中元素的排序(思路简单)
|
索引
力扣34在排序数组中查找元素的第一个和最后一个位置:思路分析+图文详解+代码实现(最靠左索引,最靠右索引)
力扣34在排序数组中查找元素的第一个和最后一个位置:思路分析+图文详解+代码实现(最靠左索引,最靠右索引)
50 0
|
索引
labview数组数据一维数组二维数组索引行列元素替换子数组排序
labview数组数据一维数组二维数组索引行列元素替换子数组排序
212 0
算法学习--递归打印一维数组的元素之和
算法学习--递归打印一维数组的元素之和
|
C语言
C语言白话数组数据查找(遍历查找、二分查找)
C语言白话数组数据查找(遍历查找、二分查找)
149 0
C语言白话数组数据查找(遍历查找、二分查找)
下一篇
无影云桌面