设为首页 加入收藏

TOP

改进的冒泡排序算法
2014-11-24 08:05:27 来源: 作者: 【 】 浏览:0
Tags:改进 冒泡 排序 算法

冒泡排序算法,是最基本的排序算法, 它属于交换排序。


冒泡排序过程


设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上"漂浮"(交换位置),如此反复进行,直至最后任何两个气泡都是轻者在上,重者在下为止。


性能分析


若记录序列的初始状态为"正序",则冒泡排序过程只需进行一趟排序,在排序过程中只需进行n-1次比较,且不移动记录;反之,若记录序列的初始状态为"逆序",则需进行n(n-1)/2次比较和记录移动。因此冒泡排序总的时间复杂度为O(n*n)。


冒泡排序实现


根据扫描方向不同,实现略有不同。


代码如下:


void BubbleSort_1(int a[], int size)
{
for (int i = 0; i < size -1; i++)
{
for (int j = size - 1; j > i ; j--)
{
if (a[j-1] > a[j])
{
int temp = a[j-1];
a[j-1] = a[j];
a[j] = temp;
}
}
}
}


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HTML5-语音搜索框 下一篇C++ 关键词 mutable

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·每日一道面试题-多线 (2025-12-26 06:20:17)
·java项目中哪些地方 (2025-12-26 06:20:14)
·Java真的是要没落了 (2025-12-26 06:20:12)
·C++ Lambda表达式保 (2025-12-26 05:49:45)
·C++ Lambda表达式的 (2025-12-26 05:49:42)