冒泡排序
来源:互联网 发布:云计算工程师好干吗 编辑:程序博客网 时间:2024/06/08 07:55
冒泡排序算法
原理:
冒泡排序是交换排序的一种,是一种较简单的排序算法,它重复的走访要排序的数组,一次比较两个元素,如果顺序错误就交换,直到没有要交换的,算法终止。
步骤:
1.比较相邻元素,如果第一个比第二个大,就交换(从小到大排)。
2.对每一对相邻元素作同样工作,依次比较。
3.针对所有元素重复以上步骤,除了最后一个。
4.要排序元素会越来越少,直到没有数字要比较,即算法终止。
时间复杂度:
O(N^2)
空间复杂度:
O(1)
性能:
冒泡排序是稳定算法(冒泡排序是单趟排序,不存在当有两个相同元素时需要交换的场景)
代码实现:
#include <iostream>#include <assert.h>using namespace std;//冒泡排序,从小到大void BubbleSort(int* arr, int len){assert(arr);for (int i = 0; i < len - 1; ++i){for (int j = 0; j < len - i - 1; ++j){if (arr[i] > arr[j]){int temp = arr[j];arr[j] = arr[i];arr[i] = temp;}}}}void Print(int* arr, int len) //打印{for (int i = 0; i < len; ++i){cout << arr[i] << " ";}cout << endl;}
#include "BubbleSort.h"void TestBubbleSort(){int arr[] = { 3, 6, 1, 2, 0, 888, 666, 23, -1, 45, -100000000, 67, 4, 5 };int len = sizeof(arr) / sizeof(arr[0]);cout << "未排序数据:" << "";Print(arr, len);BubbleSort(arr, len);cout << "已排序数据:" << "";Print(arr, len);}int main(){TestBubbleSort();return 0;}
6 2
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 深度学习:梯度消失和梯度爆炸
- 1087. All Roads Lead to Rome (30)
- 1088. Rational Arithmetic (20)
- Train Problem I (栈的模拟)
- npm安装
- 冒泡排序
- iptable使用笔记
- 1090. Highest Price in Supply Chain (25)
- Python中的新奇玩意
- POSIX(Portable Operating System Interface )信号处理
- 1092. To Buy or Not to Buy (20)
- 1.3props与state
- Windows每月更新补丁离线安装包下载
- 仙人掌相关问题的处理方法(未完待续)