算法导论快速排序实现
来源:互联网 发布:淘宝店铺公告怎么写 编辑:程序博客网 时间:2024/05/17 22:07
算法导论快速排序实现
快速排序通常是实际排序应用中最好的选择
#include <stdio.h>#include <stdlib.h>int partion(int a[],int p,int r){ int x=a[r-1]; int i=p-1; int j=0,temp=0; for(j=p;j<r-1;++j) { if(a[j]<=x) { i++; temp=a[i]; a[i]=a[j]; a[j]=temp; } } temp=a[i+1]; a[i+1]=a[r-1]; a[r-1]=temp; return i+1;}void quicksort(int a[],int p,int r){ int q=0; if(p<r) { q=partion(a,p,r); quicksort(a,p,q-1); quicksort(a,q+1,r); }}int main(){ int a[]={1,4,1,5,9,34,45,2,6,0}; quicksort(a,0,sizeof(a)/sizeof(int)); int i=0; for(i=0;i<sizeof(a)/sizeof(int);++i) printf("%d ",a[i]); return 0;}
快速排序的随机化版本在输入元素互异的情况,快速排序的期望运行时间为 0(nlgn)#include <stdio.h>#include <stdlib.h>#include <time.h>int partion(int a[],int p,int r){ int x=a[r-1]; int i=p-1; int j=0,temp=0; for(j=p;j<r-1;++j) { if(a[j]<=x) { i++; temp=a[i]; a[i]=a[j]; a[j]=temp; } } temp=a[i+1]; a[i+1]=a[r-1]; a[r-1]=temp; return i+1;}int randompartion(int a[],int p,int r){ srand((unsigned)time(0)); int i=rand()%(r-p)+p; if(i!=p) { int temp=a[i]; a[i]=a[r-1]; a[r-1]=temp; } return partion(a,p,r);}void quicksort(int a[],int p,int r){ int q=0; if(p<r) { q=randompartion(a,p,r); quicksort(a,p,q); quicksort(a,q+1,r); }}int main(){ int a[]={1,4,1,5,9,34,45,2,6,0}; quicksort(a,0,sizeof(a)/sizeof(int)); int i=0; for(i=0;i<sizeof(a)/sizeof(int);++i) printf("%d ",a[i]); return 0;}
阅读全文
1 0
- 【算法导论】快速排序实现
- 算法导论快速排序实现
- C++ 快速排序实现(算法导论)
- 【算法导论】用C++实现快速排序
- 快速排序(算法导论实现)
- 算法导论 - QuickSort 快速排序 C++实现
- 算法导论C语言实现: 快速排序
- 快速排序之算法导论实现
- 算法导论快速排序python实现
- 【算法导论】快速排序java实现
- 快速排序quicksort-算法导论java实现
- 算法导论之随机化快速排序实现
- 算法导论-快速排序
- 【算法导论】快速排序
- 算法导论-----快速排序
- 【算法导论】快速排序
- 算法导论:快速排序
- 快速排序--【算法导论】
- [C++ Primer CH03]第3章 字符串、向量和数组(笔记)
- oracle 创建用户使用的语句
- 基于Spring+SpringMVC+MyBatis+Websocket的网页聊天尝试
- 坚持不懈,直到成功-I will persist. I will win.
- redis学习日志九(有序集合(zset)的常用命令)
- 算法导论快速排序实现
- Ajax请求获取的List在前台遍历的方法
- Top 10 Things I Know for Sure-深信不疑的十大哲理
- zigbee的睡眠定时器
- Java日期加一天或加一月或加一年
- 在Python IDLE中实现清屏
- JAVA8学习笔记-Function
- 关于<c:if>没有<c:else>解决方案
- 分享一个仿微信多选图cordova插件(相册内带相机功能)