快速排序算法的实现(QuickSort)
来源:互联网 发布:openwrt 网络设置 编辑:程序博客网 时间:2024/04/30 20:00
现在正在学习算法导论,所以就想把书上的算法实现以下,以加深印象!
快排的主要思想是分治思想,由于快排的期望时间复杂度是1.39nlgn+O(n),且是原址排序,使用范围很广。
代码实现最重要的部分是划分函数的实现。
#include<iostream>using namespace std;#define N 5int 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[N]; 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;}
阅读全文
0 0
- 快速排序算法的实现(QuickSort)
- 快速排序(quicksort)算法实现
- 快速排序(quicksort)算法实现
- 数据算法之快速排序(quickSort)的Java实现
- QUicKSort 快速排序算法 c实现
- C++实现快速排序算法QuickSort()
- 算法导论 - QuickSort 快速排序 C++实现
- JavaScript快速排序算法QuickSort实现
- Java快速排序(QuickSort)算法实现
- JavaScript快速排序算法QuickSort实现
- 快速排序quicksort-算法导论java实现
- 快速排序算法QuickSort
- 快速排序算法QuickSort
- 快速排序(QuickSort)算法
- QuickSort 快速排序算法
- QuickSort算法(快速排序)
- QuickSort 优化后的快速排序算法
- 快速排序(Quicksort)的Javascript实现
- 《第一篇 从linux 0.11系统初始化main.c的fork()函数调用分析内核源码》
- 环形缓冲器(转)
- RedisTemplate访问Redis数据结构(五)——ZSet
- Django REST framework-API指南01-Requests 原创翻译
- 热门技术
- 快速排序算法的实现(QuickSort)
- 云服务器项目部署环境安装配置(二)-- MySQL安装
- GBDT:梯度提升决策树
- centos7下安装多版本python3.6
- codeforces 631A Interview
- OPENCV 3 出现二进制“=”: 没有找到接受“IplImage *”类型的右操作数的运算符(或没有可接受的转换)问题
- java集合类之List
- header+section+footer(底部按钮布局)
- RollingFileAppender