冒泡排序比较简单,应该算是学习的第一个排序算法吧!
void Swap(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
void BubbleSort(int* pData, int num)
{
if (NULL == pData || num <= 1)
return;
for (int i = 0; i < num; ++i)
{
// 每一轮,将最大的元素交换至最后面, 下标为num - i - 1
// 每一轮,比较的元素位于[0, num - i)中
// 比较当前元素与后一元素的大小,所以j的下标从1开始
for (int j = 0; j < num - i - 1; ++j)
{
if (pData[j] > pData[j + 1])
Swap(pData[j], pData[j + 1]);
}
}
}