原创:快速排序的实现
来源:互联网 发布:网络原创歌手 编辑:程序博客网 时间:2024/05/17 23:39
效率最高的一种写法,看行了,其中PIVOT的选法还可以扩充,大家可以大胆想象
但是总体思路是取大小为中间值的元素
#include <stdio.h>
int fpivot(int *items,int low,int high)
{
return low;
}
int partition(int *items,int low,int high,int (*pivot)(int *items,int low,int high))
{
int _pivot;
int i,j,r0;
if(low>=high)return low;
i=low;
j=high;
_pivot=pivot(items,low,high);
r0=*(items+_pivot);
*(items+_pivot)=*(items+high);
while(i<j)
{
while(i<j&&*(items+i)<=r0)
i++;
*(items+j)=*(items+i);
while(i<j&&*(items+j)>=r0)
j--;
*(items+i)=*(items+j);
}
*(items+i)=r0;
return i;
}
void quicksort(int *items,int low,int high)
{
int pivot;
if(low>=high)return;
pivot=partition(items,low,high,fpivot);
quicksort(items,low,pivot-1);
quicksort(items,pivot+1,high);
}
void main()
{
int test[]={50,56,1,34,4,5,78,89,2,100,200,5,68,55,55,12};
quicksort(test,0,15);
}
- 原创:快速排序的实现
- 快速排序(原创)
- 【原创】快速排序
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 期末考试终于结束!!!订一下寒假计划
- 值得珍惜一辈子的女人
- gggg
- Rails之父Hansson等大腕预测2007技术趋势
- 开发手记[2007.01.13]
- 原创:快速排序的实现
- 【PB】控件的 MS 类名和风格
- utility
- Vista初体验之后续
- DRIVER_OBJECT和DEVICE_OBJECT的关系
- Servlet初始化参数与上下文初始化参数
- Tuscany Sample 运行成功
- 沉默的人
- 开博