复习快速排序,用C语言实现:

#include <stdio.h>

int quicksort(int begin, int end, int a[], int len);

void main()
{
int a[] = {, , , , , , , };
int len = sizeof(a)/sizeof(int);
int i=;
int j=len-;
int pivot;
pivot = quicksort(i, j, a, len);
//printf("\npivot:%d\n", pivot);
//for(i=0; i<len; i++)
//{
// printf("%d ", a[i]);
//}
} int quicksort(int begin, int end, int a[], int len)
{
int tmp = ;
for(tmp=begin; tmp<=end; tmp++)
{
printf("%d ", a[tmp]);
}
printf("\n"); int i=begin;
int j = end;
int key = a[i];
//simple quick sort
while(i<j)
{
while(a[j]>key && j>= && i<j)
{
j--;
}
if(j>= && i<j)
{
a[i] = a[j];
} while(a[i]<key && i<len && i<j)
{
i++;
}
if(i<len && i<j)
{
a[j] = a[i];
} }
a[i] = key; int pivot = i; if(pivot > begin)
quicksort(begin, pivot-, a, pivot-begin); if(pivot < end)
quicksort(pivot+, end, a, end-pivot); return i;
}

运行结果为:

33 22 6 5 7 3 8 9
9 22 6 5 7 3 8
8 3 6 5 7
7 3 6 5
5 3 6
3
6
22

说明递归调用quicksort方法的次数为8次。

最新文章

  1. webapi - 模型验证
  2. Netty学习三:线程模型
  3. 如何正确并完全安装Visual Studio 2015企业版本?
  4. Java中Date的比较(befor与after方法的缺陷)
  5. pip 添加trusted host 一劳永逸
  6. php防盗链,php ci在control里面控制除了自己站内的链接点击跳转,其他来源的都跳到站内页面
  7. C# HttpClient, 使用C#操作Web
  8. mysql中文乱码解决
  9. Android动画效果translate、scale、alpha、rotate
  10. Thread: BooleanRT : Realtime 3D boolean operations for (Runtime,Editor)
  11. 『重构--改善既有代码的设计』读书笔记----Inline Temp
  12. nstallation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED报这个错的原因???
  13. javaweb项目环境搭建,jdk,tomcat,myeclipse,sqlserver安装 配置
  14. 【书】.NET及计算机类相关书籍,持续更新...
  15. 40_redux_counter应用_redux完善版本
  16. typescript和coffeescript简介
  17. Django路由层
  18. 12.vue属性.监听.组件
  19. 【java】运算符
  20. Faiss教程:基础

热门文章

  1. db:seed 更好的生成测试数据
  2. 5.6 WebDriver API实例讲解(31-35)
  3. &#39;NSUnknownKeyException&#39; this class is not key value coding-compliant for the key XXX
  4. 11 自定制shell提示符
  5. FZU 2216 The Longest Straight 模拟
  6. MySQL使用随笔
  7. &quot;数学口袋精灵&quot;bug的发现
  8. Apache—DBUtils框架简介
  9. HookIAT的启动程序
  10. php中日期的加减法运算