您的位置:首页 > 其它

算法之冒泡排序

2012-07-14 11:52 239 查看
算法系列之冒泡排序

时间复杂度:O(n^2)

空间复杂度:O(1)

图示:



说明:冒泡排序每次从数组的最后一个往前比,把该轮最小的元素往前移到对应位置,如第i轮迭代把第i小的元素移到数组的第i位置,该轮最小的元素就像气泡一样从数组上升到对应位置。图中是i==0时,最小元素1移到第0位置。

/** @brief 冒泡排序
*
* @param pData int* 待排序数组
* @param nSize int 持排序数组大小
* @return void
*
*/
void BubbleSort( int *pData, int nSize )
{
// 进行n轮迭代,每次把剩下的最小值移到最前面去
for ( int i = 0; i < nSize; ++i )
{
for ( int j = nSize - 1; j > i; --j )
if ( pData[j] < pData[j - 1] )
{
int nTmp = pData[j];
pData[j] = pData[j - 1];
pData[j - 1] = nTmp;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: