快速排序
来源:互联网 发布:武汉光谷相关数据 编辑:程序博客网 时间:2024/06/07 13:01
快速排序
此之前都是用sort(stl大法好)
一直知道原理,但是只写过一次发现手写的没stl里的快(里面加入了各种深度优化)
快排原理:先定一个目标数,然后把比它小的放在它左边,比它大的放在它右边,进行分治。最后每个分块都只有一个数那么排序OK了。
代码:
#include<stdio.h>#include<string.h>#include<time.h>#include<stdlib.h>#define MAX 16int q[20];void Quicksort(int l,int r){if(l>=r)return;int start=l;int end=r;int k=q[l];while(start<end){while(q[end]>=k&&start<end) //填入比它小的 end--;q[start]=q[end];while(q[start]<=k&&start<end) //填入比它大的 start++;q[end]=q[start];}q[start]=k;Quicksort(l,start-1); //分治法 Quicksort(start+1,r);}void print(){for(int i=0;i<MAX;i++)printf("%d ",q[i]);printf("\n");}int main(){srand(time(0));printf("原始序列\n");for(int i=0;i<MAX;i++){q[i]=10+rand()%90;}print();Quicksort(0,15);printf("快速排序\n");print();}
阅读全文
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 【网络编程】非阻塞connect详解
- Python大文件解析的效率问题
- Android adb 常用命令
- Python 学习之namedtuple的使用
- 不使用+、-、*、/完成两个整数的相加
- 快速排序
- MFC之如何弹出模态窗口
- VSLAM分类
- HDU2093 考试排名(排序)
- Idea数据库操作(Full Join)
- ns3之PCAP tracing文件命名格式
- 全面总结Java的GC算法和回收机制
- Java单例模式实现方式
- Java 基础之类集