- 冒泡排序属于简单交换排序算法,另外还有基于递归交换的快速排序算法。
- 冒泡排序是稳定排序,时间复杂度O(n^2)。快速排序是不稳定排序,时间复杂度O(nlogn)。二者都是原地排序算法,但是快速排序要用到栈空间,空间复杂度O(logn);
给出冒泡排序代码:
#include <iostream>
using namespace std;
void swap(int& x, int& y)
{
int temp = x;
x = y;
y = temp;
}
void bubble_sort(int a[], int len)
{
for(int i=len-1;i>0;--i)
for (int j = 0; j < i; ++j)
{
if (a[j] > a[j + 1])
swap(a[j], a[j + 1]);
}
}
int main()
{
int len;
int array[100];
cout << "输入排序数组的长度:";
while (cin >> len)
{
cout << "输入排序数组:";
for (int i = 0; i < len; ++i)
cin >> array[i];
bubble_sort(array,len);
cout << "排序后输出:" << endl;
for (int i = 0; i < len; ++i)
cout << array[i] << ' ';
cout << endl;
cout << "输入排序数组的长度:";
}
return 0;
}