快速排序--(参考算法导论p146)
2007-10-15 19:41
357 查看
#include<stdio.h>
void qsort(int a[],int begin, int end);
int main()
{
int a[]={6,7,3,4,5,2,9,10};
qsort(a,0,sizeof(a)/sizeof(a[0])-1);
for(int i=0;i<sizeof(a)/sizeof(a[0]);i++)
{
printf("%d, ",a[i]);
}
return 0;
}
void qsort(int a[],int begin, int end)
{
if(begin<end)
{
int pirot=a[end];
int i,j,tmp;
i = begin-1;
j=begin;
while(j<end)
{
if(a[j]<=pirot)
{
i++;
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
j++;
}
i++;
tmp = a[i];
a[i]=a[end];
a[end]=tmp;
qsort(a,begin,i-1);
qsort(a,i+1,end);
}
}
void qsort(int a[],int begin, int end);
int main()
{
int a[]={6,7,3,4,5,2,9,10};
qsort(a,0,sizeof(a)/sizeof(a[0])-1);
for(int i=0;i<sizeof(a)/sizeof(a[0]);i++)
{
printf("%d, ",a[i]);
}
return 0;
}
void qsort(int a[],int begin, int end)
{
if(begin<end)
{
int pirot=a[end];
int i,j,tmp;
i = begin-1;
j=begin;
while(j<end)
{
if(a[j]<=pirot)
{
i++;
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
j++;
}
i++;
tmp = a[i];
a[i]=a[end];
a[end]=tmp;
qsort(a,begin,i-1);
qsort(a,i+1,end);
}
}
相关文章推荐
- 算法导论:快速排序优化算法!
- 快速排序之算法导论实现
- 算法导论之快速排序
- 快速排序——算法导论(8)
- 算法导论之快速排序
- 【算法导论】第7章快速排序
- 算法导论:快速排序代码
- 插入排序,合并排序,堆排序,快速排序,计数排序的实现(算法导论)
- 算法导论快速排序python实现
- 【算法导论 第7章 快速排序】
- 算法导论7.3快速排序的随机化版本
- 算法导论:快速排序
- 【算法导论】第七章之快速排序
- 【算法导论 第7章 快速排序】
- 【算法导论】C++参考源码之基础排序
- 【算法导论】C++参考源码之堆排序
- 算法导论之三:快速排序
- 七大排序问题之快速排序(参考算法导论PHP版)
- 【算法导论】排序 (三):快速排序 深入分析
- 【算法导论】快速排序