Posted on 2006-04-13 18:37
魔のkyo 阅读(292)
评论(0) 编辑 收藏 引用 所属分类:
Programming
inline
void
myswap(
int
v[],
int
i,
int
j )
{
int
temp;
temp
=
v[i];
v[i]
=
v[j];
v[j]
=
temp;
}
/*
myqsort:以递增顺序对v[left] . v[right] 进行排序
*/
void
myqsort(
int
v[],
int
left,
int
right)
{
int
i, last;
if
( left
>=
right )
/*
若数组所包含的元素数少于两个,则什么也不做
*/
return
;
last
=
left;
/*
取v[left]作为分区元素
*/
for
( i
=
left
+
1
; i
<=
right; i
++
)
/*
分区
*/
if
( v[i]
<
v[left] )
myswap( v,
++
last, i );
/*
把比分区元素小的靠左边放置
*/
myswap( v, left, last );
/*
插入分区元素到指定位置
*/
myqsort( v, left, last
-
1
);
myqsort( v, last
+
1
, right );
}