C语言快速排序
2024-10-15 03:43:44
复习快速排序,用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次。
最新文章
- webapi - 模型验证
- Netty学习三:线程模型
- 如何正确并完全安装Visual Studio 2015企业版本?
- Java中Date的比较(befor与after方法的缺陷)
- pip 添加trusted host 一劳永逸
- php防盗链,php ci在control里面控制除了自己站内的链接点击跳转,其他来源的都跳到站内页面
- C# HttpClient, 使用C#操作Web
- mysql中文乱码解决
- Android动画效果translate、scale、alpha、rotate
- Thread: BooleanRT : Realtime 3D boolean operations for (Runtime,Editor)
- 『重构--改善既有代码的设计』读书笔记----Inline Temp
- nstallation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED报这个错的原因???
- javaweb项目环境搭建,jdk,tomcat,myeclipse,sqlserver安装 配置
- 【书】.NET及计算机类相关书籍,持续更新...
- 40_redux_counter应用_redux完善版本
- typescript和coffeescript简介
- Django路由层
- 12.vue属性.监听.组件
- 【java】运算符
- Faiss教程:基础
热门文章
- db:seed 更好的生成测试数据
- 5.6 WebDriver API实例讲解(31-35)
- &#39;NSUnknownKeyException&#39; this class is not key value coding-compliant for the key XXX
- 11 自定制shell提示符
- FZU 2216 The Longest Straight 模拟
- MySQL使用随笔
- ";数学口袋精灵";bug的发现
- Apache—DBUtils框架简介
- HookIAT的启动程序
- php中日期的加减法运算