#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版)"中,我们可以期待看到以下关键知识点: 1. **分治策略**:快速排序的核心在于将大问题分解为小问题来解决。在Java代码中,会有一个主函数作为入口,调用递归函数来执行排序过程。 ...
快速排序是一种高效的排序算法,由英国计算机科学家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基础,基本就可以看懂这个小程序了
用c++写的快速排序 Swap交换两个int类型的数据 Sort排序 QuickSort快速排序(递归) main
快速排序算法自1960年由英国计算机科学家托尼·霍尔提出以来,已成为排序算法中的一种经典。该算法以其高效的排序速度和简洁的实现原理,广泛应用于各类数据处理和计算机科学领域。为了深入理解快速排序算法,本文将...
快速排序:快速排序算法的基本思想是选择一个基准元素,将数组分为两个子数组,其中一个子数组的所有元素都小于基准元素,另一个子数组的所有元素都大于等于基准元素。然后递归地对这两个子数组进行快速排序,最后将...
在这个示例中,`quickSort`函数是快速排序的主要逻辑,它使用了递归调用自身来处理子序列。`partition`函数用于将数组划分为两部分,而`swap`函数用于交换数组中的元素。在主函数`main`中,我们创建了一个测试数组并...
快速排序(Quicksort)是一种高效的排序算法,使用分治法(Divide and Conquer)策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。压缩包文档记录的是用Python实现快速排序的代码示例。
C语言实现的Quicksort(快速排序), 最基本的版本, 可以自动生成随机数后进行排序并显示结果, 适合初学者学习.
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R....总的来说,这个压缩包提供了一个非递归实现快速排序的完整示例,通过自定义栈的数据结构,实现了快速排序算法,适用于理解和学习快速排序的非递归实现方式。
压缩包文件代码是一个使用MATLAB实现的常用算法示例——快速排序(Quick Sort)。快速排序是一种高效的排序算法,采用分治法(Divide and Conquer)策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个...
快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出,它的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录...
python实现的快速排序示例.md
快速排序c语言在这个示例中,我们定义了 swap 函数,用于交换两个元素的值。partition 函数用于将数组按照一个基准元素进行划分,并返回基准元素最终所在的位置。quickSort 函数是快速排序的核心实现部分。它首先...