您的位置:首页 > 其它

冒泡排序

2012-11-29 08:31 183 查看
冒泡排序是在数据结构与算法中最为简单的一个排序方法,属于交换排序的范畴,当然也是原地排序。其机理是逐次比较,把最大的值冒出来,放在数组最后一个位置。同理,从头开始,将次大值冒出来放在数组倒数第二个位置,直到排序完成。显然两层循环嵌套,其最坏的情况是O(n-1)+O(n-2)+...+O(1),结果为O(n * n),在排序算法中属于效率较低的一类。

template<typename T>
void Bubble_Sort(T A[],const size_t& size)
{
for(int i = 0; i != size; i ++)
{
for(int j = size - 2; j >= 0; j --)
{
if(A[j] >= A[j + 1])
{
T tmp = A[j];
A[j] = A[j + 1];
A[j + 1] = tmp;
}
}
#ifdef DEBUG
print(A,size);
#endif
}
}
template<typename T>
void print(T A[],const size_t& size)
{
static int times = 0;
times ++;
cout << "the:" << times << "times" << endl;
for(int i = 0; i != size; i ++)
{
cout << A[i] << '\t';
}
cout << endl;
}


结果已通过测试用例,请大家批评指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: