| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 611 人关注过本帖
标题:`~谁能给我讲讲这个快速排序算法```
取消只看楼主 加入收藏
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
结帖率:66.67%
收藏
 问题点数:0 回复次数:1 
`~谁能给我讲讲这个快速排序算法```

``算法是这样的`:

这是`C.A.R.Hoare于1962年发明的```对一个给定的数组,从中选择一个元素,以该元素为界```将其他元素划分为两个子

集,一个子集中所有元素都小于该元素,另一个子集中的元素都大于或等于该元素.对这2个子集递折行这一过程,当某个子

集中的``的元素小于2时`,这个子集就不需要再次排序```终止递归``.


void qsort ( int v[], int left, int right )

{

int i, last ;

void swap ( int v[], int i,int j ) ;

if ( left>= right ) /* 若数组包含的元素少于2个 */
return ;

swap ( v, left, (left + right) / 2 ) ; /* 将划分子集的元素 */

last = left ; /* 移动V[0] */

for ( i = left+1; i <= right; i++ ) /* 划分子集 */
if (v[i] < v[align=left] )
swap (v, ++last, i);

swap ( v, left, last); /* 恢复划分子集的元素 */

qsort ( v, left, last-1 );

qsort ( v, last+1, right );
}



/* swap 函数: 交换v[i]和[j]值 */

void swap ( int v[], int i, int j )
{
int temp

temp = v[i] ;
v[i] = v[j] ;
v[j] = temp ;
}

我除了能看懂 SWAP 函数以外 ``其他什么都不懂``

后面跟的注释``更是不知道说的是什么意思``

leaft, right, last, 代表的是什么啊```

好晕啊```

给我讲讲```好不好``谢谢````






搜索更多相关主题的帖子: 算法 
2007-06-19 14:51
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
我``已经想明白了````

谢谢``



女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-06-21 14:32
快速回复:`~谁能给我讲讲这个快速排序算法```
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032452 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved