`~谁能给我讲讲这个快速排序算法`````算法是这样的`:
这是`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, 代表的是什么啊```
好晕啊```
给我讲讲```好不好``谢谢````