/*=======================================================
* 函 数 名: Shell_sort(int *, int )
* 参数说明: pArray 为传入的数组
iCount 为数组的个数
* 功能描述: 将 pArray 按照从小到大的顺序排序
* 返 回 值: void
=======================================================*/
void Shell_sort(int *const pArray, int iCount)
{
int iShell; // 希尔系数
int iOut_circle; // 外层循环
int iIn_circle; // 内层循环
int iTemp; // 临时变量
for (iShell = iCount/2; iShell > 0; iShell /= 2) /*控制增量*/
{
for (iOut_circle = iShell; iOut_circle < iCount; iOut_circle++) /*调用直接插入排序*/
{
iTemp = *(pArray + iOut_circle);
for (iIn_circle = iOut_circle - iShell;
((iIn_circle >= 0) && (iTemp < *(pArray + iIn_circle)));
iIn_circle -= iShell)
{
*(pArray + iIn_circle + iShell) = *(pArray + iIn_circle);
}
*(pArray + iIn_circle + iShell) = iTemp;
}
}
}