冒泡排序算法
来源:互联网 发布:精准扶贫大数据平台app 编辑:程序博客网 时间:2024/06/07 11:33
冒泡排序
冒泡排序是最简单的排序算法。基本思想是迭代地对输入的序列中的第一个元素到最后一个元素进行两两比较,当需要时交换这两个元素的位置。该过程持续迭代直到在一趟排序过程中不需要交换操作位置。相比于其他排序算法的优势,冒泡排序可以检测输入的序列是否已经是排序的。
void BubbleSort(int[] A,int n){
for(int pass=n-1;pass>=0;pass--){
for(int i=0;i<pass-1;i++){
if(A[i]>A[i+1]){
int temp =A[i];
A[i]=A[i+1];
A[i+1]=temp;
}
}
}
}
上述算法时间复杂度为O(N*N)。可以增加一个附加变量标记来改进算法。在排序过程中,如果没有交换的操作则意味着排序完成。
void BubbleSort(int[] A,int n){
int pass,i,temp,swapped=1;
for(pass=n-1;pass>=0&&swapped;;pass--){
swapped=0;
for(int i=0;i<pass-1;i++){
if(A[i]>A[i+1]){
int temp =A[i];
A[i]=A[i+1];
A[i+1]=temp;
swapped=1;
}
}
}
}
最好的情况下上述改进的冒泡排序算法的时间复杂度是O(N)。性能:
最坏情况下的时间复杂度:O(N*N)
最好情况下的时间复杂度(改进版):O(N)
平均情况下的时间复杂度(基本版):O(N*N)
最坏情况下的空间复杂度:O(1) 辅助
阅读全文
0 0
- 排序算法--冒泡排序
- 排序算法-冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法-冒泡排序
- 排序算法 冒泡排序
- 排序算法-- 冒泡排序
- 排序算法-冒泡排序
- 排序算法---冒泡排序
- 排序算法-冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法 冒泡排序
- 排序算法-冒泡排序
- AbstractQueuedSynchronizer源码剖析(五)- 响应中断的共享锁
- 定时检测网站运行状态
- FileReader采用的默认编码
- Handler深入解析(一)
- 抽象类和接口的总结
- 冒泡排序算法
- 这是我的博客
- 小知识Class.getResourceAsStream()与ClassLoader.getResourceAsStream()的区别
- 使用litepal数据库框架出现表未创建成功
- java的动态代理机制详解
- Python 之 __new__() 方法与实例化
- qwq不断更新的总结【NOIP前夕】
- 虚幻4中的动画技术【2】引擎中的各种资源详解
- 死锁