
使用动态数组实现:
#include<bits/stdc++.h>
using namespace std;
void BubbleSort(vector<int>& arr){int n = arr.size();bool swapped;for(int i=0; i<n-1; i++){swapped = false;for(int j=0; j<n-1; j++){if(arr[j]>arr[j+1]){swap(arr[j], arr[j+1]);swapped = true;}}if(!swapped){break;}}
}int main(){int n;cin>>n;vector<int> arr(n);for(int i=0; i<n; i++){cin>>arr[i];}BubbleSort(arr);for(int i=0; i<n; i++){cout<<arr[i]<<" ";}return 0;
}
动态数组+指针实现:
#include<bits/stdc++.h>
using namespace std;void BubbleSort(vector<int>& arr){int n = arr.size();bool swapped;for(int i=0; i<n-1; i++){swapped = false;// 获取指向当前元素的指针int* ptr = &arr[0];for(int j=0; j<n-i-1; j++){if(*ptr > *(ptr+1)){swap(*ptr, *(ptr+1));swapped = true;}ptr++; // 指针后移}if(!swapped) break;}
}int main(){int n;cin>>n;vector<int> arr(n);for(int i=0; i<n; i++){cin>>arr[i];}BubbleSort(arr);for(int i=0; i<n; i++){cout<<arr[i]<<" ";}return 0;
}