`

快速排序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++实现,包含划分位置的详细分析 #### 一、快速排序算法简介 快速排序是一种高效的排序算法,由英国计算机科学家托尼·霍尔(Tony Hoare)于1960年提出。它采用分治法策略来把一个序列分为较小和较大...

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

    在这个《数据结构课设》中,你将学习到如何用C++实现快速排序。C++是一种通用的、面向对象的编程语言,具有丰富的库支持和高效性,是实现算法的理想选择。C++中的标准模板库(STL)虽然提供了sort函数,但理解并实现...

    用C++实现快速排序

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过...通过C++实现,我们可以直观地理解和掌握其核心逻辑,并能灵活应用于各种编程场景。

    快速排序c++实现.md

    快速排序c

    快速排序c++,快速排序c++源码和详细教程

    以下是一个简单的快速排序C++实现: ```cpp #include using namespace std; int partition(int arr[], int low, int high) { int pivot = arr[high]; // 选择最后一个元素作为基准 int i = (low - 1); // 将i设...

    快速排序算法c++实现

    总的来说,这个C++实现的快速排序是一个实用的工具,它展示了分治策略的威力,并且通过计时功能帮助理解算法的时间复杂度。同时,由于其通用性,它可以适应各种不同的数据源,为处理大规模数据提供了一个有效的解决...

    快速排序C++的实现

    5. **代码实现**:展示C++实现的快速排序代码,包括主函数、分区函数和快速排序函数。 6. **优缺点**:讨论快速排序的优缺点,如效率高、不稳定、对输入敏感等。 7. **应用实例**:列举快速排序在实际问题中的应用。...

    c++实现快速排序.zip

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

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

    本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...

    快速排序c++源代码

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治策略,通过一趟排序将待...通过理解并掌握快速排序的原理和C++实现,可以帮助开发者更好地解决大规模数据处理的问题。

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

    在C++实现中,为了方便测试和使用,我们还需要一个驱动程序,它会创建一个数组并调用`quickSort`函数进行排序,最后可能还会打印出排序后的结果。这一步骤可以通过以下代码实现: ```cpp int main() { int arr[] =...

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

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

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

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

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

    以下是一个简单的C++模板类实现快速排序的示例: ```cpp template void quickSort(T arr[], int left, int right) { if (left ) { int pivotIndex = partition(arr, left, right); quickSort(arr, left, pivot...

    快速排序c++

    根据给定的文件信息,我们可以总结出以下关于“快速排序C++”的相关知识点: ...以上是基于给定代码的快速排序C++实现的详细解析,希望能够帮助读者更好地理解和掌握快速排序算法及其C++实现方法。

    快速排序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++源码”中,开发者采用了并行计算的概念,结合了Windows操作系统下的多进程和多线程技术,以进一步提升排序的速度。多进程是指同时运行多个独立的程序,它们各自拥有独立的内存空间,...

    c++ 快速排序

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

Global site tag (gtag.js) - Google Analytics