`

快速排序C++实现

 
阅读更多
// Type your C++ code and click the "Run Code" button!
// Your code output will be shown on the left.
// Click on the "Show input" button to enter input data to be read (from stdin).

#include <iostream>
#include <algorithm>

using namespace std;

// print array  
void print_arr(int a[], int n) {  
    for(int i = 0; i < n; i++) cout<<a[i]<<" ";  
    cout<<endl;  
}  

int partition(int a[], int low, int high) {
    int pivot = a[low];
    while(low < high) {
        while(low < high && a[high] >= pivot) high --;
        a[low] = a[high];
        while(low < high && a[low] <= pivot) low ++;
        a[high] = a[low];
    }
    a[low] = pivot;
    return low;
}

void quick_sort(int a[], int l, int h) {
    if (l >= h) return;
    int pivot = partition(a, l, h);
    quick_sort(a, l, pivot-1);
    quick_sort(a, pivot+1, h);
}

// return the kth smallest item
/*
int quickSelect(int items[], int first, int last, int k) {
    int pivot = partition(items, first, last);
    if (k < pivot-first) {
        return quickSelect(items, first, pivot, k);
    } else if (k > pivot) {
        return quickSelect(items, pivot+1, last, k-pivot);
    } else {
        return items[k];
    }
}
*/

int main() {
    int a[] = {1, 3, 2, 4, 5, 6};
    
    print_arr(a, 6);
    quick_sort(a, 0, 5);
    print_arr(a, 6);
    
    return 0;
}

 

分享到:
评论

相关推荐

    《数据结构课设》快速排序C++实现

    《数据结构课设》快速排序C++实现 内含流程图、源代码、完整设计报告……

    用C++实现快速排序

    (1)随机产生0到100之间的20个整数。 (2)输入序列,编写程序,用快速排序方法将序列从小到大排序并输出。 (3)纪录比较次数和移动次数。

    快速排序C++实现,包含划分位置的详细分析

    快速排序算法,用C++语言实现,包含划分位置的详细分析与实现

    快速排序c++实现.md

    快速排序c

    快速排序算法c++实现

    快速排序算法c++实现,快速实现插入排序十万个数(调用)。可以改成输入。并附加了程序运行计时,用于测试时间复杂度,可以移除。绝对能用

    c++实现快速排序.zip

    c++实现快速排序.zipc++实现快速排序.zipc++实现快速排序.zipc++实现快速排序.zipc++实现快速排序.zipc++实现快速排序.zipc++实现快速排序.zipc++实现快速排序.zipc++实现快速排序.zipc++实现快速排序.zip

    c++实现快速排序源码.zip

    快速排序 c++实现快速排序源码.zipc++实现快速排序源码.zipc++实现快速排序源码.zip

    c++模板类实现快速排序

    用模板类实现的一个简易的c++程序,实现了快速排序。

    用c++实现的快速排序算法

    用c++实现的快速排序算法 算法实现的简单易懂

    快速排序C++的实现

    环境 Microsoft Visual C++ 6.0 快速排序 控制台程序 内含实验报告

    插入排序、冒泡排序、归并排序、快速排序的C++实现

    插入排序、冒泡排序、归并排序、快速排序四种排序方式的C++实现,各写成了一个函数,主函数中可以选择调用那一个。初始化数组时用的是随机种子srand((int)time(0))。在宏中定义数组大小。

    快速排序11.cpp 使用C++源码实现

    快速排序11.cpp 使用C++源码实现快速排序11.cpp 使用C++源码实现快速排序11.cpp 使用C++源码实现快速排序11.cpp 使用C++源码实现快速排序11.cpp 使用C++源码实现快速排序11.cpp 使用C++源码实现快速排序11.cpp 使用...

    c++ 快速排序

    快速排序c++实现代码 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归...

    C++实现快速排序

    1)实现快速排序算法。 2)要求输入待排序元素个数,利用随机函数生成指定数目的元素,元素值的 取值范围为[10, 1000000]。 3)运行快速排序程序对所生成元素进行排序,要求将元素的初始输入序列和 排序后的结果序列...

    快速排序算法的C++程序实现

    自己写的比较经典的快速排序算法,希望能对大家的学习起到一定的帮助

    各种排序的C++算法实现(插入排序、合并排序、堆排序、快速排序)

    全面的排序算法实现,包括插入排序、合并排序、堆排序、快速排序。 堆排序:HeapSort 讲解详见http://blog.csdn.net/fly_yr/article/details/8550701 插入排序:InSertion_Sort 讲解详见...

    快速排序C++算法

    严奶奶《数据结构》书上快速排序的C++算法实现,随机生成10个100以内的数,然后快速排序,并输出比较次数

    C++语言的算法实现包括插入排序冒泡排序堆排序快速排序

    用C++语言实现的几个常见算法,里面有注解,方便大家理解,简单易学,都可以正常编译运行。

    快速排序+归并排序+c++

    计算机算法课程的作业,用c++实现了归并排序和快速排序,并比较了两种算法的速度。测试数据为随机生成,可设置为10万、100万、1000万大小的数组。在代码中提供了详细的注释,在容易出错的地方进行了解释。下面是得到...

Global site tag (gtag.js) - Google Analytics