面试常问的C++算法(有题目和答案)

面试中经常会问到各种算法和数据结构的问题,以下是一些常见的算法,以及每个算法的C++示例:

1. 二分查找 (Binary Search):
   - 题目:在排序数组中查找目标值的位置。
   - 描述:给定一个升序排列的整数数组和一个目标值,使用二分查找算法在数组中找到目标值的位置,如果不存在则返回 -1。
   

int binarySearch(vector& nums, int target) {
    int left = 0, right = nums.size() - 1;
    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (nums[mid] == target) return mid;
        if (nums[mid] < target) left = mid + 1;
        else right = mid - 1;
    }
    return -1;
}

2. 快速排序 (Quick Sort):
   - 题目:实现快速排序算法。
   - 描述:编写一个函数,使用快速排序对给定的整数数组进行排序。
 

void quickSort(vector& arr, int low, int high) {
    if (low < high) {
        int pivot = partition(arr, low, high);
   

你可能感兴趣的:(算法,算法,面试,c++)