冒泡排序的原理:
1.比较相邻的两个元素(例如:升序排列),如果第一个元素大于第二个元素,则交换元素的位置,反之不变。
2.对每一对相邻的两个元素,重复步骤一;从开始第一对到最后一对。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
冒泡排序流程图:
C++代码实现
#include <iostream>
using namespace std;
void BubbleSort(int arr[],int n){
while(n-- > 0){
for(int i = 0; i < n; i++){
if(arr[i] > arr[i+1]){
swap(arr[i],arr[i+1]);
}
}
}
}
int main(){
int a[10] = {6,3,8,1,10,5,4,9,2,7};
int length = sizeof(a) / sizeof(a[0]);
cout << "排序之前:";
for(int i = 0; i < length; i++){
cout << a[i] <<" ";
}
cout << endl;
BubbleSort(a,length);
cout << "排序之后:";
for(int i = 0; i < length; i++){
cout << a[i] << " ";
}
cout << endl;
return 0;
}
运行结果: