快速排序算法的实现(QuickSort)
2017-09-29 17:18
197 查看
现在正在学习算法导论,所以就想把书上的算法实现以下,以加深印象!
快排的主要思想是分治思想,由于快排的期望时间复杂度是1.39nlgn+O(n),且是原址排序,使用范围很广。
代码实现最重要的部分是划分函数的实现。
快排的主要思想是分治思想,由于快排的期望时间复杂度是1.39nlgn+O(n),且是原址排序,使用范围很广。
代码实现最重要的部分是划分函数的实现。
#include<iostream> using namespace std; #define N 5 int Partition(int a[],int p,int r){//划分函数 int x,i; x=a[r]; i=p-1; int j; for(j=p;j<=r-1;j++){ if(a[j]<=x){ i=i+1; int temp; temp=a[i]; a[i]=a[j]; a[j]=temp; } } int tp; tp=a[i+1]; a[i+1]=a[r]; a[r]=tp; return i+1; } void QuickSort(int a[],int p,int r){//分治思想,递归调用 if(p<r){ int q; q=Partition(a,p,r); QuickSort(a,p,q-1); QuickSort(a,q+1,r); } } int main(){ int a ; int i; for(i=0;i<N;i++) cin>>a[i]; QuickSort(a,0,N-1); for(i=0;i<N;i++) cout<<a[i]<<endl; return 0; }
相关文章推荐
- QUicKSort 快速排序算法 c实现
- 图文讲解Java中实现quickSort快速排序算法的方法
- JavaScript快速排序算法QuickSort实现
- JDK的快速排序算法实现DualPivotQuicksort
- C++实现快速排序算法QuickSort()
- C++实现快速排序算法QuickSort()
- 快速排序算法Quicksort(C++实现)
- 深入解析快速排序算法的原理及其Go语言版实现
- 桶排序,冒泡排序,快速排序算法Python实现
- 快速排序(QuickSort)的C#实现(采用随机化主元方式)
- php自带排序函数sort()和用自己用php实现的快速排序算法,速度比较。
- QuickSort最优实现过程代码(java)
- 第一个快速排序算法(从小到大排序,java实现)
- 二分查找算法递归实现&&快速排序算法实现
- 排序算法—快速排序算法分析与实现(Python)
- 快速排序(QuickSort)原理及Java 实现
- 8086汇编语言实现快速排序算法
- quicksort算法实现与原理
- 用php实现快速排序算法
- php实现一些快速排序算法