一.顺序查找
1.题目:
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
2.算法描述
顺序查找也称为线形查找,属于无序查找算法。
从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,
若相等则表示查找成功;
若扫描结束仍没有找到关键字等于k的结点,表示查找失败。
3.核心CODE
class Solution {
public int sequenceSearch( int[] nums, int target)
{
for(int i=0;i<nums.length;i++)
{
if(nums[i]==target)
{
return i;
}
}
return -1;
}
}
二.二分查找
1.题目:
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
2.算法描述:
二分查找操作的数据集是一个有序的数据集。
开始时,先找出有序集合中间的那个元素。
如果此元素比要查找的元素大,就接着在较小的一个半区进行查找;
反之,如果此元素比要找的元素小,就在较大的一个半区进行查找。
在每个更小的数据集中重复这个查找过程,直到找到要查找的元素或者数据集不能再分割。
3.核心CODE
class Solution {
public int biSearch( int[] nums, int target)
{
int left=0;
int right=nums.length-1