冒泡排序(Bubble Sort):它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
时间复杂度:O(n^2)
稳定性:冒泡排序是一种稳定排序算法
实例
// Bubblesort.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
template<class T>
void Bubblesort(T data[], int n)
{
for (int i = 0; i < n - 1; i++)
{
for (int j = n - 1; j > i; j--)
{
if (data[j] < data[j - 1])
{
swap(data[j], data[j - 1]);
}
}
}
}
template<class T>
void Sprint(T data[], int n)
{
for (int i = 0; i < n; i++)
{
cout << data[i] << " ";
}
cout << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
int arr[] = { 3, 5, 1, 4, 6, 2 };
int n = sizeof(arr) / sizeof(int);
Bubblesort(arr, n);
Sprint(arr, n);
return 0;
}