博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer 快速排序
阅读量:6914 次
发布时间:2019-06-27

本文共 1624 字,大约阅读时间需要 5 分钟。

  题目链接: 剑指offer

  题目描述: 快速排序

  解题思路: 快速排序

  代码: 

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define lson l, m, rt<<1#define rson m+1, r, rt<<1|1#define mem0(a) memset(a,0,sizeof(a))#define mem1(a) memset(a,-1,sizeof(a))#define sca(x) scanf("%d",&x)#define de printf("=======\n")typedef long long ll;using namespace std;int RandomInRange(int s, int e) { return rand() % (e-s+1) + s;}void swap(int &a, int &b) { int temp = a; a = b; b = temp;}int Partition(int data[], int len, int start, int end) { if( data == NULL || len <= 0 || start < 0 || end >= len ) { throw new std::exception(); } int index = RandomInRange(start, end); if( index != end ) swap(data[index], data[end]); int small = start-1; for( int index = start; index < end; index++ ) { if( data[index] < data[end] ) { small++; if( small != index ) { swap(data[small], data[index]); } } } small++; swap(data[small], data[end]); return small;}void QuickSort(int data[], int len, int start, int end) { if(start == end) return; int index = Partition(data, len, start, end); if( index > start ) { QuickSort(data, len, start, index-1); } if( index < end ) { QuickSort(data, len, index+1, end); }}int main() { int data[10] = { 134,32,13,510,5,5,7,78,96,15}; QuickSort(data, 10, 0, 9); for( int i = 0; i < 10; i++ ) { cout << data[i] << " "; } cout << endl; return 0;}
View Code

  思考: 写写剑指offer里的题, 练练自己的代码能力

转载于:https://www.cnblogs.com/FriskyPuppy/p/7506374.html

你可能感兴趣的文章
Hadoop生态圈-Kafka的完全分布式部署
查看>>
Lucene全文检索
查看>>
who they are
查看>>
cellet端点的问题
查看>>
HDOJ-2602 Bone Collector
查看>>
10 个对初学者有用的 GIT 教程
查看>>
C 学习笔记
查看>>
WPF回忆收藏
查看>>
引用Interop.SQLDMO.dll后的注意事项。
查看>>
ubuntu 配置 web服务器
查看>>
[转载]执行中的专注
查看>>
几本图形学的书
查看>>
Data De-duplication
查看>>
虚方法的调用是怎么实现的(单继承VS多继承)
查看>>
PHP 中变量的间接引用
查看>>
对《SQL Server中tempdb的management》的一些更正和补充
查看>>
自适应网页设计(Responsive Web Design)
查看>>
【转】MFC 迅雷七窗体特效,使用DWM实现Aero Glass效果
查看>>
JS查找孩子节点
查看>>
Rhythmk 一步一步学 JAVA (20) JAVA enum常用方法
查看>>