我是靠谱客的博主 粗暴世界,最近开发中收集的这篇文章主要介绍查找的类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.无序线性查找
假设给定一个数组,其元素的排列顺序是未知的,数组中的元素无序,如果要查找某个元素,必须通过扫描整个数组才能实现

int unSortedLineSearch(int[] a,int n,int data){
  for(int i = 0;i<n;i++){
    if(a[i] == data){
      return i;
    }
  }
  return -1;
}

2.排序/有序线性查找
如果数组的元素已经排序,则许多情况下都不需要扫描整个数组来判断元素是否在给定的数组中

int sortedLineSearch(int[] a,int n,int data){
  for(int i = 0;i<n;i++){
    if(a[i] == data){
      return i;
    }else if(a[i]>data){
      return -1;
    }
  }
}

3.二分查找

//迭代的二分查找
int binarySearch(int[] a,int n,int data){
  int low = 0;
  int high = n-1;
  while(low<=high){
    int mid = low + (high - low)/2;
    if(a[mid] == data){
      return mid;
    }else if(a[mid] > data){
      high = mid -1;
    }else{
      low = mid +1;
    }
  }
  return -1;
}

//递归的二分查找法
int binarySearch(int[] a,int low,int high,int data){
  int mid = low + (high - low)/2;
  if(a[mid] == data){
    return mid;
  }else if(a[mid] < data){
    return bibarySearch(a,mid+1,high,data);
  }else{
    return binarySearch(a,low,mid-1,data);
  }
  return -1;
}

最后

以上就是粗暴世界为你收集整理的查找的类型的全部内容,希望文章能够帮你解决查找的类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(86)

评论列表共有 0 条评论

立即
投稿
返回
顶部