精通八大排序算法系列一快速排序算法(4)

2021-01-20 18:54

快速排序算法版本二

不过,这个版本不再选取(如上第一版本的)数组的最后一个元素为主元,

而是选择,数组中的第一个元素为主元。

/**************************************************/

/* 函数功能:快速排序算法 */

/* 函数参数:结构类型table的指针变量tab */

/* 整型变量left和right左右边界的下标 */

/* 函数返回值:空 */

/* 文件名:quicsort.c 函数名:quicksort () */

/**************************************************/

void quicksort(table *tab,intleft,int right)

{

inti,j;

if(left<right)

{

i=left;j=right;

tab->r[0]=tab->r[i]; //准备以本次最左边的元素值为标准进行划分,先保存其值

do

{

while(tab->r[j].key>tab->r[0].key&&i<j)

j--; //从右向左找第1个小于标准值的位置j

if(i<j) //找到了,位置为j

{

tab->r[i].key=tab->r[j].key;i++;

} //将第j个元素置于左端并重置i

while(tab->r[i].key<tab->r[0].key&&i<j)

i++; //从左向右找第1个大于标准值的位置i

if(i<j) //找到了,位置为i

{

tab->r[j].key=tab->r[i].key;j--;

} //将第i个元素置于右端并重置j

}while(i!=j);

tab->r[i]=tab->r[0]; //将标准值放入它的最终位置,本次划分结束

quicksort(tab,left,i-1); //对标准值左半部递归调用本函数

quicksort(tab,i+1,right); //对标准值右半部递归调用本函数

}

}

----------------

ok,咱们,还是以上述相同的数组,应用此快排算法的版本二,来演示此排序过程:

这次,以数组中的第一个元素2为主元。

2(主) 8 7 1 3 5 6 4


精通八大排序算法系列一快速排序算法(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第11讲 技术分析---威廉指标,随机指标

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: