冒泡排序
来源:互联网 发布:中博软件学院 编辑:程序博客网 时间:2024/06/05 19:27
冒泡排序原理为,重复的遍历数列,当后面的数小于(大于)前面的数,则交换两个数,直到没有要交换的数据为止。对于n个数的数列,时间复杂度为o(n^2)。
优化的冒泡排序原理为,设置标志位。通过判断标志位,判断一次遍历数列后,是否有数列进行交换。如果一次遍历数列后,并没有数据进行交换,则证明数列是有序的。对于n个数的数列,时间复杂度为o(n^2)。
冒泡排序最差空间复杂度:总共O(n),需要辅助空间O(1)
优化的冒泡排序算法如下:
template <typename T>void Swap(T &t1, T &t2){T temp;temp = t1;t1 = t2;t2 = temp;}template <typename T>void bubblingSort(T &t, int length){bool bFlag = true;for (size_t i = 0; i < length - 1; i++){ for (size_t j = 0; j < length - 1 - i; j++){if (t[j] > t[j + 1]){Swap(t[j], t[j + 1]);bFlag = false;//cout << t[j] << endl;}}if (bFlag)return;}}
0 0
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 深入浅出搜索架构引擎、方案与细节(上)
- 浅谈C++指针
- PHP学习杂记(一)
- 记忆化搜索(字符串)——Kickstart 2017(Google Code Jam) A Round #B
- caffe下用个多模型对图片批量分类
- 冒泡排序
- redis若干问题
- Path类的最全面详解
- 数据库的主从架构
- 学习python--基础语法
- PAT1004. 成绩排名 (20)
- linux 安装sysstat使用iostat、mpstat、sar、sa
- Android 一行代码解决菜单隐藏问题,又扔给你事件分发机制
- Struts2实现文件上传