分类: C/C++
2012-10-29 09:49:40
void BubbleSort(SeqList R)
{ //R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序
int i,j;
Boolean exchange; //交换标志
for(i=1;i
for(j=n-1;j>=i;j--) //对当前无序区R[i..n]自下向上扫描
if(R[j+1].key
R[j+1]=R[j];
R[j]=R[0];
exchange=TRUE; //发生了交换,故将交换标志置为真
}
if(!exchange) //本趟排序未发生交换,提前终止算法
return;
} //endfor(外循环)
} //BubbleSort算法的平均时间复杂度为O(n2)
void* memcpy(void* pvTo, const void* pvForm, size_t size)
{
assert((pvTo!= NULL) && (pvFrom!= NULL));//使用断言防止传递空地址
unsigned char* pbTo = (unsigned char*)pvTo;//防止改变pvTo的地址
unsigned char* pbFrom = (unsigned char*)pvFrom;//防止改变pvFrom的地址
while(size-- > 0)
{
*pbTo++ = *pbFrom++;
}
return pvTo;
}
char* strcpy(char* pDest, const char* pSrc)
{
assert((pDest != NULL) && (pSrc != NULL));
char *pTmp = pDest;
while ((*pDest++ = *pSrc++) != '\0')
;
return pTmp;
}