算法描述:排序的过程和排序的名字相同,这里描述的是排序从小到大的过程。每次都从第一个数开始遍历,将这个数和后面一个数对比,如果这个数的大于后面一个数,那么就把这两个数交换,如果这个数小于后面一个数,那么就拿后面一个数和后面一个数的后一个数比较,第一轮遍历过后,最后一个数就是最大的一个数了。然后第二轮遍历的次数减少一。以此类推。
时间复杂度:两次循环,时间复杂度O(n2),效率比较低。
代码如下:
#include <iostream>
using namespace std;
void BubbleSort(int a[], int n)
{
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n - i; j++)
{
if(a[j] > a[j+1])
{
swap(a[j], a[j+1]);
}
}
}
}
int main()
{
int n;
int a[1000];
cin >> n;
for(int i = 0; i < n; i++)
{
cin >> a[i];
}
BubbleSort(a, n);
for(int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
return 0;
}