c++ 经典的快速排序QuickSort完整代码片

来源:清泛编译     2020-09-19 22:33:42    人气:     我有话说( 0 人参与)

清泛网(www.tsingfun.com):c++快速排序算法实现,经典的一种写法,来自Github,原文有个bug,本文已修正代码如下: include <iostream>void printArray(int *array, int n){ for (int i = 0

c++快速排序算法实现,经典的一种写法,来自Github,原文有个bug,本文已修正代码如下:
#include <iostream>

void printArray(int *array, int n)
{
    for (int i = 0; i < n; ++i)
        std::cout << array[i] << std::endl;
}

void quickSort(int *array, int low, int high)
{
    int i = low;
    int j = high;
    int pivot = array[(i + j) / 2];
    int temp;

    while (i <= j)
    {
        while (array[i] < pivot)
            i++;
        while (array[j] > pivot)
            j--;
        if (i <= j)
        {
            temp = array[i];
            array[i] = array[j];
            array[j] = temp;
            i++;
            j--;
        }
    }
    if (j > low)
        quickSort(array, low, j);
    if (i < high)
        quickSort(array, i, high);
}

int main()
{
    int array[] = {95, 45, 48, 98, 1, 485, 65, 478, 1, 2325};
    int n = sizeof(array)/sizeof(array[0]);

    std::cout << "Before Quick Sort :" << std::endl;
    printArray(array, n);

    quickSort(array, 0, n-1);

    std::cout << "After Quick Sort :" << std::endl;
    printArray(array, n);
    return (0);
}
代码直接可运行,可直接用于实际项目开发。
Github地址:QuickSort.cpp

c++ quicksort sort

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)