21xrx.com
2024-11-05 18:46:51 Tuesday
登录
文章检索 我的文章 写文章
C++实现整数查找技巧
2023-07-06 05:09:07 深夜i     --     --
C++ 整数 查找技巧 二分查找 哈希表

C++是一种常用的高级编程语言,用于开发各种类型的应用程序。在编程过程中,我们常常需要查找整数,这就需要掌握一些整数查找技巧。以下是使用C++实现整数查找的技巧,希望对大家有所帮助。

1.顺序查找

顺序查找是一种基本的查找方法,也是最容易实现和理解的方法。顺序查找的过程就是从第一个元素开始逐个比较,直到找到目标元素或者查找结束。下面是一个简单的C++代码示例:


int linear_search(int arr[], int n, int target) {

  for (int i = 0; i < n; i++) {

    if (arr[i] == target)

      return i;

    

  }

  return -1;

}

2.二分查找

二分查找也叫折半查找,是一种更高效的查找方法。这种方法要求待查找的序列是有序的,然后将序列平分成两部分,每次都在一侧查找,直到找到目标元素或者查找结束。下面是一个简单的C++代码示例:


int binary_search(int arr[], int n, int target) {

  int left = 0, right = n - 1;

  while (left <= right) {

    int mid = left + (right - left) / 2;

    if (arr[mid] == target)

      return mid;

     else if (arr[mid] < target) {

      left = mid + 1;

    } else

      right = mid - 1;

    

  }

  return -1;

}

3.哈希查找

哈希查找是一种利用哈希函数实现查找的方法。哈希函数将每个元素映射到一些位置,如果哈希函数的设计比较好,那么相同的元素一定映射到相同的位置,可以直接在该位置查找元素。如果有多个元素映射到同一个位置,就需要使用链表或者其他数据结构进行查找。下面是一个简单的C++代码示例:


class HashTable {

public:

  HashTable(int size) {

    table.resize(size);

  }

  int hash(int key) {

    return key % table.size();

  }

  void insert(int key, int value) {

    int index = hash(key);

    table[index].push_back(make_pair(key, value));

  }

  int get(int key) {

    int index = hash(key);

    for (auto p : table[index]) {

      if (p.first == key)

        return p.second;

      

    }

    return -1;

  }

private:

  vector<vector<pair<int, int>>> table;

};

以上就是使用C++实现整数查找的技巧,希望对大家有所帮助。无论是顺序查找、二分查找还是哈希查找,都是比较基础的查找方法,熟练掌握这些技巧可以让我们的程序更加高效、精简。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复