排序——冒泡排序(C++实现)
来源:互联网 发布:淘宝vip等级在那里看 编辑:程序博客网 时间:2024/06/17 23:58
冒泡排序算法的基本思想:假设待排序长为n,从后往前两两比较相邻元素的值,如为逆序,则交换它们,直到序列比较完。我们称为一趟冒泡,结果将最小的元素交换到待排序列的第一个位置(关键字最小的元素如气泡一般逐渐往上“漂浮”直至“水面”,这就是冒泡排序名字的由来)。下一趟冒泡时,前一趟确定的最小元素不再参与比较,待排序列减少一个元素,每趟冒泡的结果把序列中最小元素放到了序列的最终位置,......,这样最多做n-1趟冒泡就能把所有的元素排序好。
冒泡排序的代码:
#include <iostream>using namespace std;void BubbleSort(int a[], int n){for (int i = 0; i < n - 1; ++i){bool flag = false;//表示本趟冒泡是否发生交换的标志for (int j = n - 1; j > i; --j)//一趟冒泡的过程{if (a[j - 1] > a[j])//若为逆序{flag = true;swap(a[j - 1], a[j]);//交换}}if (flag == false){return;//本趟遍历后没有发生交换,说明表已经有序}}}int main(){int n = 8;int a[20];for (int i = 0; i < n; ++i){cout << "Please enter a number : ";cin >> a[i];}BubbleSort(a, n);for (int i = 0; i < n; ++i){cout << a[i] << " ";}cout << endl;return 0;}
空间复杂度为O(1),最坏情况下时间复杂度为O(n^2),最好情况下(表中元素基本有序)时间复杂度为O(n),其平均时间复杂度为O(n^2)。
稳定性:冒泡排序是一个稳定的排序方法。
阅读全文
0 0
- 排序——冒泡排序(C++)
- 冒泡排序(C实现)
- 冒泡排序(C实现)
- 排序算法(C实现)------ 冒泡排序
- 冒泡排序C实现
- C实现冒泡排序
- C#——冒泡排序
- 汇编实现排序——冒泡排序
- C语言排序(一)——冒泡排序
- 冒泡排序—java实现
- 冒泡排序算法(C & Java 实现)
- 冒泡排序算法(C语言实现)
- 冒泡排序(C/C++实现)
- 蛮力法之冒泡排序(C实现)
- 冒泡排序(c语言实现)
- 冒泡排序(C语言实现)
- 冒泡排序(C语言实现)
- 排序——冒泡排序(C++实现)
- Island Perimeter (中)
- SpringCloud(第 047 篇)注解式Async配置异步任务
- new操作符不分配内存,只调用构造函数
- SpringCloud(第 048 篇)使用AOP统一处理Web请求日志
- C++——幸运的编号
- 排序——冒泡排序(C++实现)
- ContentProvider简介
- Binary Search:374. Guess Number Higher or Lower
- 浅谈A*算法
- 【Java】の基础——注解
- CF875F 图论(好题啊)
- [Oracle 11g r2(11.2.0.4.0)]案例分析8-本地节点hang 住导致的集群重新配置
- 面试问题总结
- Codeforces 868 D Huge String