`
yunchow
  • 浏览: 326989 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

快速排序完整示例

    博客分类:
  • C++
阅读更多
#include <iostream>
using namespace std;

template< typename T >
void sort( T* a, int n){
        if(n<=1) return;//递归退出条件,否则会出现段错误 
        if(n==2){
                if(a[1]<*a) swap(a[1],*a);
                return;
        }
        swap(*a,a[n>>1]);
        T flag = a[0];//保存分界值
        T* left = a+1;
        T* right = a+n-1;
        while(  left<right ){
                while( left<right && *left<flag ) ++left;
                while( *right>=flag && right>a ) --right;
                if( left<right ) swap( *left,*right);
        }
        swap(*a,*right);
        sort(a,right-a);
        sort(right+1,(n-1)-(right-a));
}
int main()
{
        int a[10240];
        for(int i=0; i<10240; i++)
                a[i] = 10240-i;
        time_t t = time(NULL);
        sort(a,10240);
        cout << "time: " << time(NULL)-t << endl;
        for(int i=0; i<10; i++)
                cout << a[i] << ' ';
        cout << endl;
}
分享到:
评论

相关推荐

    快速排序示例代码(JAVA版)

    在这个"快速排序示例代码(JAVA版)"中,我们可以期待看到以下关键知识点: 1. **分治策略**:快速排序的核心在于将大问题分解为小问题来解决。在Java代码中,会有一个主函数作为入口,调用递归函数来执行排序过程。 ...

    TIA博途中通过SCL语言实现快速排序的具体方法示例.docx

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它基于分治法的策略,通过选取一个基准值并重新排列数组,将问题分解为较小的部分,然后递归地对这些部分进行排序,最终达到整个序列...

    分治法:快速排序的示例程序

    以下是一个简化的快速排序示例代码: ```python def quickSort(arr, low, high): if low pivot = partition(arr, low, high) quickSort(arr, low, pivot - 1) quickSort(arr, pivot + 1, high) def partition...

    数据结构-各种排序完整示例程序

    本资源包“数据结构-各种排序完整示例程序”提供了C语言实现的各种经典排序算法,帮助学习者深入理解并掌握这些算法的实际应用。 1. 希尔排序(Shell Sort): 希尔排序是一种基于插入排序的算法,通过将待排序数组...

    代码包_分治法快速排序法示例_

    在这个"代码包_分治法快速排序法示例_"中,我们将深入探讨快速排序的工作原理、实现过程以及它在实际编程中的应用。 快速排序的基本步骤如下: 1. **选择基准元素**:首先,我们需要在待排序的数组中选择一个基准...

    快速排序 Java 示例

    快速排序的简单实现程序,java编制,迭代法对数据组分区,知道简单的java基础,基本就可以看懂这个小程序了

    c++快速排序示例

    用c++写的快速排序 Swap交换两个int类型的数据 Sort排序 QuickSort快速排序(递归) main

    快速排序算法示例.rar

    快速排序算法自1960年由英国计算机科学家托尼·霍尔提出以来,已成为排序算法中的一种经典。该算法以其高效的排序速度和简洁的实现原理,广泛应用于各类数据处理和计算机科学领域。为了深入理解快速排序算法,本文将...

    使用Python实现的快速排序算法示例

    快速排序:快速排序算法的基本思想是选择一个基准元素,将数组分为两个子数组,其中一个子数组的所有元素都小于基准元素,另一个子数组的所有元素都大于等于基准元素。然后递归地对这两个子数组进行快速排序,最后将...

    快速排序(C语言实现)

    在这个示例中,`quickSort`函数是快速排序的主要逻辑,它使用了递归调用自身来处理子序列。`partition`函数用于将数组划分为两部分,而`swap`函数用于交换数组中的元素。在主函数`main`中,我们创建了一个测试数组并...

    通过python实现快速排序代码示例.zip

    快速排序(Quicksort)是一种高效的排序算法,使用分治法(Divide and Conquer)策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。压缩包文档记录的是用Python实现快速排序的代码示例。

    C语言快速排序示例

    C语言实现的Quicksort(快速排序), 最基本的版本, 可以自动生成随机数后进行排序并显示结果, 适合初学者学习.

    快速排序的完整代码

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的...

    快速排序 --- 非递归实现

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R....总的来说,这个压缩包提供了一个非递归实现快速排序的完整示例,通过自定义栈的数据结构,实现了快速排序算法,适用于理解和学习快速排序的非递归实现方式。

    通过MATLAB实现快速排序算法示例.rar

    压缩包文件代码是一个使用MATLAB实现的常用算法示例——快速排序(Quick Sort)。快速排序是一种高效的排序算法,采用分治法(Divide and Conquer)策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个...

    C语言实现多种链表快速排序

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出,它的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录...

    python实现的快速排序示例.md

    python实现的快速排序示例.md

    C 语言实现的快速排序算法的示例代码.pdf

    快速排序c语言在这个示例中,我们定义了 swap 函数,用于交换两个元素的值。partition 函数用于将数组按照一个基准元素进行划分,并返回基准元素最终所在的位置。quickSort 函数是快速排序的核心实现部分。它首先...

Global site tag (gtag.js) - Google Analytics