void QuickSort1(int *s,int left,int right)
{
int i,j,t,pivot;
if(left>right)
return;
if(left<right)
{
pivot = s[left]; //基准数
i=left;
j=right;

while(i!=j)
{
while(i<j &&s[j]>=pivot) j--; //从右向左找第一个比基准数小的数
while(i<j &&s[i]<=pivot) i++; //从左向右找第一个比基准数大的数
if(i<j) //交换两数
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
s[left] = s[i]; //基准数归位
s[i] = pivot;

QuickSort1(s,left,i-1);
QuickSort1(s,i+1,right);
}

}

void QuickSort2(int *s,int left,int right)
{
int i,j,pivot;
if(left>right)
return;
if(left<right)
{
pivot = s[left]; //基准数
i=left;
j=right;

while(i!=j)
{
while(i<j &&s[j]>=pivot) j--; //从右向左找第一个比基准数小的数
if(i<j)
{
s[i]=s[j];
i++;
}
while(i<j &&s[i]<=pivot) i++; //从左向右找第一个比基准数大的数
if(i<j)
{
s[j]=s[i];
j--;
}
}

s[i] = pivot; //基准数归位

QuickSort2(s,left,i-1);
QuickSort2(s,i+1,right);
}

}

int main()
{
int a[10] = {1,6,7,0,2,17,13,35,19,23};
//QuickSort1(a,0,9);
QuickSort2(a,0,9);
int i=0;
for(;i<10;i++)
printf("%d ",a[i]);
return 0;
}

最新文章

  1. TFS 2015 Update 2功能探索
  2. Socket状态变迁图
  3. oracle 监测数据库是否存在指定字段
  4. *IntelliJ idea创建创建Maven管理的Java Web项目
  5. 安装spark1.3.1单机环境
  6. IT痴汉的工作现状13-吓唬电话
  7. 蜗牛—Hibernate之初识配置
  8. 3377: [Usaco2004 Open]The Cow Lineup 奶牛序列
  9. UICollectionView左对齐流水布局、右对齐流水布局
  10. 【JSP 标签】选择判断c:choose
  11. 模块(一)——re模块
  12. scala(二) Future执行逻辑解读
  13. Android开发学习之路--Notification之初体验
  14. brew 安装指定版本命令行工具 tmux 多版本实现
  15. 龙光集团地产跃居“中国房地产500强TOP28”
  16. C#如何生成缩略图、水印
  17. VsCode语言设置为中文
  18. scrapy爬取网址,进而爬取详情页问题
  19. 订单状态 Mark
  20. [py]字符串/列表

热门文章

  1. nginx反向代理做cache配置
  2. android开发中遇到的问题汇总【九】
  3. rsync的介绍及参数详解,配置步骤,工作模式介绍
  4. 编程算法 - 二叉树的最低公共祖先 代码(C)
  5. centos7 修改sudoers文件
  6. a byte of vim -- 学习摘要
  7. spring工作原理理解
  8. LINQ分页工具
  9. nginx学习之反向代理篇(六)
  10. php扩展trie_filter: 利用词库, 过滤敏感词