算法系列之冒泡排序
时间复杂度: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;
}
}
}