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

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

开发者学堂课程【【名师课堂】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>

输入(更改)数字查找

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

相关文章
|
Go 开发者
二维数组的遍历方式|学习笔记
快速学习二维数组的遍历方式
二维数组的遍历方式|学习笔记
|
Go 开发者
数组应用案例(2)|学习笔记
快速学习数组应用案例(2)。
|
9月前
Qsort函数实现对各类型数组中元素的排序(思路简单)
Qsort函数实现对各类型数组中元素的排序(思路简单)
|
算法
【算法挨揍日记】day10——704. 二分查找、34. 在排序数组中查找元素的第一个和最后一个位置
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
367 0
|
9月前
指针的基础应用(数组的颠倒和排序,二维数组的表示)
指针的基础应用(数组的颠倒和排序,二维数组的表示)
41 0
|
8月前
|
算法 搜索推荐 C++
C++之STL常用算法(遍历、查找、排序、拷贝、替换、算数生成、集合)
C++之STL常用算法(遍历、查找、排序、拷贝、替换、算数生成、集合)
两种基础的数组排序方法。
两种基础的数组排序方法。
80 0
|
搜索推荐
八大排序算法~简单选择排序【记录下标k变量的作用】
八大排序算法~简单选择排序【记录下标k变量的作用】
146 0
每日一题:Leetcode34 在排序数组中查找元素的第一个和最后一个位置
每日一题:Leetcode34 在排序数组中查找元素的第一个和最后一个位置

热门文章

最新文章