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

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

思路分析:

1、先从数组里面拿出一个数据(sample),从数组最右边下标(end)开始比较,直到遇到比sample小的数(min)就把min放到sample的位置上

2、接着从数组最左边下标(begin)开始比较,直到遇到比sample大的数(max),就把max放到前面min的原来的位置上

3、一直重复步骤1和2,直到begin下标和end下标相等

4、接着递归分别排序左右两边的数

 

代码:

#include 
#include
#include
void quick_sort(int *array,int begin,int end){ if(begin < end) { int i=begin,j=end,x; x = array[begin]; while(i < j) { while( i < j && x <= array[j]) j--; if(i < j) array[i++] = array[j]; while(i < j && x > array[i]) i++; if(i < j) array[j++] = array[i]; } array[i] = x; quick_sort(array,begin,i-1); quick_sort(array,i+1,end); }}int main(int argc,char **argv){ int i = 0; int array[10] = {
1,2,8,97,45,56,77,11,6,100}; quick_sort(array,0,9); printf("hello\n"); for(i=0;i<10;i++) { printf("%d ",array[i]); } return 0;}

 

转载于:https://www.cnblogs.com/wurenzhong/p/8651989.html

你可能感兴趣的文章
解决Eclipse java build path中Web App Libraries无法自动找到WEB-INF的lib目录
查看>>
使用XStream对Java对象进行序列化和反序列化
查看>>
AjaxPro使用说明
查看>>
poj 1180 斜率优化dp
查看>>
关于内存中栈和堆的区别[转]
查看>>
步步为营 .NET 代码重构学习笔记 十
查看>>
Sr Software Engineer - Big Data Team
查看>>
IntelliJ IDEA给Serializable类加上自动的serialVersionUID
查看>>
[C# 网络编程系列]专题四:自定义Web浏览器
查看>>
2013流行Python项目汇总
查看>>
TensorFlow (RNN)深度学习 双向LSTM(BiLSTM)+CRF 实现 sequence labeling 序列标注问题 源码下载...
查看>>
关于 Jason.NET 的质问
查看>>
《算法帝国》
查看>>
CSS three column layout
查看>>
一起谈.NET技术,编写T4模板无法避免的两个话题:&quot;Assembly Locking&quot;&amp;&quot;Debug&quot;...
查看>>
金山毒霸专业版高调上线 宣称杀毒速度增3倍
查看>>
一周最新示例代码回顾 (4/2–4/8)
查看>>
PS教程:如何批量处理图片
查看>>
我的INI 配置文件读写动态库
查看>>
交换机命令行配置与VLAN
查看>>