算法模板总结

排序:

1.冒泡排序(什么?你也是冒泡人?):

void bubble_Sort(int* arr, int n) {
    for (int i = 0; i<n-1; ++i)
        for (int j = 0; j<n-i-1; ++j)
            if (arr[j] > arr[j+1])
                swap(arr[j], arr[j+1]);
}

2.快速排序:

void quickSort(int* arr, int low, int high) {
    if (low >= high)
        return;
    int kase = low;
    for (int i = low; i<high; i++) 
        if (arr[i] < arr[high])
            swap(arr[kase++], arr[i]);
    swap(arr[kase], arr[high]);
    quickSort(arr, low, kase-1);
    quickSort(arr, kase+1, high);
}

3.归并排序:

void mergeSort(int arr[], int temp[], int low, int high) {
    if (low >= high)
        return;
    int len = high-low, mid = len/2 + low;
    int start1 = low, end1 = mid, start2 = mid+1, end2 = high;
    mergeSort(arr, temp, start1, end1);
    mergeSort(arr, temp, start2, end2);
    int index = low;
    while(start1 <= end1 && start2 <= end2) 
        temp[index++] = arr[start1] <= arr[start2] ? arr[start1++] : arr[start2++];
    while(start1 <= end1)
        temp[index++] = arr[start1++];
    while(start2 <= end2)
        temp[index++] = arr[start2++];
    for (int i = low; i<=high; i++)
        arr[i] = temp[i];
}

4.待续....

猜你喜欢

转载自www.cnblogs.com/shuitiangong/p/12063528.html