快速排序
2015-09-20 16:26
183 查看
快速排序较冒泡排序而言,递归与两个for循环相比,降低了时间复杂度,速度也更快,是有效常用的一种排序方法。
#include <stdio.h>
#include <stdlib.h>
#define N 10
void fast_sort(int a[],int beg,int end)
{
int l=beg,r=end;
int t=a[beg];
if(beg<end)
{
while(l<r)
{
while((a[r]>=t)&&(l<r))
{
r--;
}
a[l]=a[r];
while((a[l]<=t)&&(l<r))
{
l++;
}
a[r]=a[l];
}
a[l]=t;
fast_sort(a,beg,l-1);
fast_sort(a,r+1,end);
}
else
return ;
}
int main()
{
int a
,i;
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
fast_sort(a,0,N-1);
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#define N 10
void fast_sort(int a[],int beg,int end)
{
int l=beg,r=end;
int t=a[beg];
if(beg<end)
{
while(l<r)
{
while((a[r]>=t)&&(l<r))
{
r--;
}
a[l]=a[r];
while((a[l]<=t)&&(l<r))
{
l++;
}
a[r]=a[l];
}
a[l]=t;
fast_sort(a,beg,l-1);
fast_sort(a,r+1,end);
}
else
return ;
}
int main()
{
int a
,i;
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
fast_sort(a,0,N-1);
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
相关文章推荐
- 项目19.1 字符及其编码
- 【数据结构之旅】顺序栈的定义、初始化、空栈判断、入栈、出栈操作
- ThinkPHP实战之登录
- 【数据结构之旅】顺序栈的定义、初始化、空栈判断、入栈、出栈操作
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2015)网络赛H题2015-9-20
- 我辈楷模
- 下雨了
- 音乐中设置显示整个音乐的时间
- 幂等性
- A child container failed during start, tomcat的阿帕奇问题
- 图片与屏幕尺寸不匹配
- 直面自己
- Visual Studio C++ include与library
- GCC参数含义
- visual studio 2010 的openGL环境的搭建
- Web开发常见的几个漏洞解决方法
- MapReduce案例学习(7) 列出名字以J开头的员工姓名及其所属部门名称
- 1.7文件系统操作与磁盘管理(学习过程)
- java 值传递跟引用传递在内存中怎么分配的
- hdoj 1856 More is better