/*=======================================================
* 函 数 名: Swap(int *, int *)
* 参数说明: pa 指向要交换的位置
pb 指向要交换的位置
* 功能描述: 将 pa 和 pb 所指的元素交换
* 返 回 值: void
=======================================================*/
inline void Swap(int *pa, int *pb)
{
int temp; // 临时变量,用于交换的存储
temp = *pa;
*pa = *pb;
*pb = temp;
}
/*=======================================================
* 函 数 名: Insert_sort(int *, int )
* 参数说明: pArray 为传入的数组
iCount 为数组的个数
* 功能描述: 将 pArray 按照从大到小的顺序排序
* 返 回 值: void
=======================================================*/
void Select_sort(int * const pArray,int iCount)
{
int *pCurrent = pArray; // pCurrent 指向顺序向前移动的地址
while(iCount > 0)
{
int iCompare_count = iCount - 1; // iCompare_count 为pCompare到
// 末尾的个数
int *pCompare = pCurrent; // pCompare 用于找到最大元素的地址
int *pMax = pCompare; // pMax 用于存储最大元素的地址
pCompare++;
while(iCompare_count > 0)
{
if(*pMax < *pCompare)
{
pMax = pCompare;
}
pCompare++;
iCompare_count--;
}
Swap(pCurrent,pMax); // 将找到的最大的最大元素与当前所指位置的元素交换
pCurrent++;
iCount--;
}
}