基本思路:
通过相邻数据的交换来达到排序的目的
排顺流程:
- 对数组的各数据,依次比较相邻的两个元素的大小
- 如果前面的数据大于后面的数据就交换位置。经过第一轮可以把最大值求出来,排在最后端
- 然后,再以同样的方法把剩下的元素进行比较,最后便可以得到从小到大的排好序的数组
void BubbleSort(int* arr, int len)
{
for (int i=0; i<len-1; ++i)
{
for (int j=0; j<len-i-1; ++j)
{
if (arr[j]<arr[j+1])
{
std::swap(arr[j], arr[j + 1]);
}
}
}
}
int main()
{
int arr[] = {2,1,6,8,34,12,1,0};
BubbleSort(arr, sizeof(arr)/sizeof(int));
for (const auto& e: arr)
{
std::cout << e << ' ';
}
std::cout<<std::endl;
return 0;
}