/*======================================================================================
冒泡排序:
对于 0 到 N-1 之间的每一个 i,
将 a[i] 与 a[N-1] 从右向左依次交换,将该范围上最大或最小的数放到i上
========================================================================================
最差时间分析:O(n2) 平均时间复杂度:O(n2) 稳定度:稳定 空间复杂度:O(1)
======================================================================================*/
#include<iostream>
#include<vector>
using namespace std;
// 交换两个参数的值
template <typename T> // 函数模板 以适应各种类型
void exch(T &a, T &b) {
T i = a;
a = b;
b = i;
}
// 互换两个参数的值
template <typename T> // 函数模板 以适应各种类型
void exch(vector<T>&arr, const int a,const int b) {
T i = arr[a];
arr[a] = arr[b];
arr[b] = i;
}
/*冒泡排序*/
template <typename T>// 函数模板 以适应各种类型
void sort_Bubble(vector<T>&a) {
int n = a.size();
for (int i = 1; i < n; i++) {
for (int j = n-1; j >i; j--) {
if (a[j] < a[j - 1]) exch(a, j, j - 1);
}
}
}
int main() {
vector<int>arr = { 1,3,5,1455,75,225,995,2,233,58,899,55 };
sort_Bubble(arr);
for (int i = 0; i < arr.size(); i++) {
cout << arr[i] << " ";
}
/*
for (auto &i : arr) { // 自动查看arr数组类型,每个循环i自动+1 ,i绑定 arr[i]
cout << i << " ";
}
*/
cout << "\n";
system("pause"); //暂停以显示
return 0;
}
排序算法之冒泡排序
最新推荐文章于 2024-11-02 15:25:13 发布