双核
CPU
上的快速排序效率
为了试验一下多核CPU上排序算法的效率,得比较单任务情况下和多任务并行排序算法的差距,因此选用快速排序算法来进行比较。
测试环境:双核CPU 2.66GHZ
单核CPU 2.4GHZ
以下是一个快速排序算法的源代码:
UINT
Split
(
void
**
ppData
,
UINT
uStart
,
UINT
uEnd
,
COMPAREFUNC
CompareFunc
)
{
void
*
pSelData
;
UINT
uLow
;
UINT
uHigh
;
uLow
=
uStart
;
uHigh
=
uEnd
;
pSelData
=
ppData
[
uLow
];
while
(
uLow
<
uHigh
)
{
while
( (*
CompareFunc
)(
ppData
[
uHigh
],
pSelData
) > 0
&&
uLow
!=
uHigh
)
{
--
uHigh
;
}
if
(
uHigh
!=
uLow
)
{
ppData
[
uLow
] =
ppData
[
uHigh
];
++
uLow
;
}
while
( (*
CompareFunc
)(
ppData
[
uLow
],
pSelData
) < 0
&&
uLow
!=
uHigh
)
{
++
uLow
;
}
if
(
uLow
!=
uHigh
)
{
ppData
[
uHigh
] =
ppData
[
uLow
];
--
uHigh
;
}
}
ppData
[
uLow
] =
pSelData
;
return
uLow
;
}
void
QuickSort
(
void
**
ppData
,
UINT
uStart
,
UINT
uEnd
,
COMPAREFUNC
CompareFunc
)
{
UINT
uMid
=
Split
(
ppData
,
uStart
,
uEnd
,
CompareFunc
);
if
(
uMid
>
uStart
)
{
QuickSort
(
ppData
,
uStart
,
uMid
- 1,
CompareFunc
);
}
if</