21xrx.com
2025-03-26 14:44:37 Wednesday
文章检索 我的文章 写文章
C++实现整数查找技巧
2023-07-06 05:09:07 深夜i     15     0
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++实现整数查找的技巧,希望对大家有所帮助。无论是顺序查找、二分查找还是哈希查找,都是比较基础的查找方法,熟练掌握这些技巧可以让我们的程序更加高效、精简。

  
  

评论区