编辑代码

#include <iostream>
using namespace std;

void Print(int arr[], int n){
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
}

#if 1
// 插入排序
void insertionSort(int arr[], int n) {
    for (int i = 1; i < n; i++) {
        int key = arr[i];
        int j = i - 1;
        
        // 将比 key 大的元素向右移动
        while (j >= 0 && arr[j] > key) {
            arr[j + 1] = arr[j];
            j--;
        }
        
        arr[j + 1] = key;
    }
}

int main() {
    int arr1[] = {5, 2, 4, 6, 1, 3};
    int arr2[] = {12, 19, 2, 14, 189, 10};
    int arr3[] = {128, 119, 232, 134, 109, 180};
    int n = 6;
    
    insertionSort(arr1, n);
    Print(arr1, n);
    insertionSort(arr2, n);
    Print(arr2, n);
    insertionSort(arr3, n);
    Print(arr3, n);

    return 0;
}
#endif

#if 0
// 折半查找
int binarySearch(int arr[], int left, int right, int target) {
    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (arr[mid] == target) {
            return mid;
        }
        if (arr[mid] < target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    return -1;
}

int main() {
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    int n = sizeof(arr) / sizeof(arr[0]);
    int result = binarySearch(arr, 0, n - 1, 4);// 3
    cout << result << endl;
    result = binarySearch(arr, 0, n - 1, 8);// 7
    cout << result << endl;
    result = binarySearch(arr, 0, n - 1, 12);// -1
    cout << result << endl;
    return 0;
}
#endif