冒泡排序是什么?冒泡排序法原理以及代码实例讲解

思想:类似于水中的气泡上浮的过程,较小的气泡先冒起,较大的气泡后冒起。依次比较相邻的两个数,将比较大的数字放在右边。

原理:每次通过交换的方式把当前剩余元素的最大值移动到一端,而剩余的元素为0时,排序结束。

代码描述:

#include<iostream>
using namespace std;
int main(){
char A[10]={1,2,4,5,6,43,7,9,3,5};
for(int i=1;i<10;i++){
for(int j=0;j<10-i;j++) {
//第i趟从A[0]到A[10-i-1]都与下一个数进行比较
if(A[j]>A[j+1]){
//交换使得本趟的最大值在最右边
int temp = A[j];
A[j]=A[j+1];
A[j+1]=temp;
}
}
}
for(int i=0;i<10;i++){
printf("%d ",A[i]);
}
return 0;
}

分析:排序过程执行n-1趟,每一趟从左到右比较相邻的两个数,如果大的数在左边,则交换这两个数,当该趟排序完成后,剩余数的最大值在最右边。

时间复杂度:O(n²)

空间复杂度:O(1)

相关推荐

剑指Offer(Python多种思路实现):合并两个排序的链表

【Python学习1:爬取百度贴吧并按回复量生成排序】

【Python学习1:爬取百度贴吧并按回复量生成排序】

C++类对象排序operator重载操作

快速排序找数组中的第N大数