算法思路:
比较两个相邻的元素,将值大的元素交换至右端。
依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。
程序实现:
void sAlgorithm::bubbleSort(std::vector<int>& outData)
{
int num = outData.size();
for (int i = 0; i < num - 1; i++)// 经典的冒泡法
{
int flag = i;
int data = outData[i];
for (int k = i + 1; k < num; k++)
{
if (outData[k] < outData[i])
{
flag = k;
outData[i] = outData[k];
}
}
if (flag != i) {
outData[i] = outData[flag];
outData[flag] = data;
}
}
return;
}
测试结果:
原序列数据:86 68 33 10 97 80 57 22 63 41
冒泡排序后:10 22 33 41 57 63 68 80 86 97
网友评论