冒泡排序算法

来源:互联网 发布:精准扶贫大数据平台app 编辑:程序博客网 时间:2024/06/07 11:33

冒泡排序

冒泡排序是最简单的排序算法。基本思想是迭代地对输入的序列中的第一个元素到最后一个元素进行两两比较,当需要时交换这两个元素的位置。该过程持续迭代直到在一趟排序过程中不需要交换操作位置。相比于其他排序算法的优势,冒泡排序可以检测输入的序列是否已经是排序的。

void BubbleSort(int[] A,int n){

for(int pass=n-1;pass>=0;pass--){

for(int i=0;i<pass-1;i++){

if(A[i]>A[i+1]){

int temp =A[i];

A[i]=A[i+1];

A[i+1]=temp;

}

}

}

}

上述算法时间复杂度为O(N*N)。可以增加一个附加变量标记来改进算法。在排序过程中,如果没有交换的操作则意味着排序完成。

void BubbleSort(int[] A,int n){

int pass,i,temp,swapped=1;

for(pass=n-1;pass>=0&&swapped;;pass--){

swapped=0;

for(int i=0;i<pass-1;i++){

if(A[i]>A[i+1]){

int temp =A[i];

A[i]=A[i+1];

A[i+1]=temp;

swapped=1;

}

}

}

}

最好的情况下上述改进的冒泡排序算法的时间复杂度是O(N)。

性能:

最坏情况下的时间复杂度:O(N*N)

最好情况下的时间复杂度(改进版):O(N)

平均情况下的时间复杂度(基本版):O(N*N)

最坏情况下的空间复杂度:O(1)  辅助


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 肛裂出血几天了怎么办 肛裂拉屎出血该怎么办 孕期肛裂出血该怎么办 老人大便拉不出来怎么办 拉屎拉的屁眼疼怎么办 拉屎堵在肛门口怎么办 上火拉大便有血怎么办 7岁儿童大便带血怎么办 阴炎用药后出血怎么办 孕晚期大便拉不出来怎么办 想拉屎拉不出来怎么办 4岁幼儿大便干燥怎么办 2岁幼儿大便干燥怎么办 1岁幼儿大便干燥怎么办 5岁幼儿大便干燥怎么办 4岁儿童大便干燥怎么办 狗吃别的狗的屎怎么办 狗狗黄疸怎么办最有效 拉屎出血但不疼怎么办 没拉出时就出血怎么办 拉不出大便怎么办肛门像被堵住 尿里粘液丝高怎么办 右肋骨里面疼是怎么办 腰受凉直不起来怎么办 干活累了腰疼怎么办 打球腰打球腰疼怎么办 生完孩子腰酸痛怎么办 腰窝哪里痛是怎么办 尿结石疼的时候怎么办 站久了脚底痛怎么办 站久了脚板痛怎么办 站久脚底板酸痛怎么办 累的腿疼怎么办小妙招 脚走路多了疼怎么办 脚走路多了腿疼怎么办 走路多了脚心疼怎么办 坐时间长了腰疼怎么办? 开车久了腰疼怎么办 站时间久了腰疼怎么办 上班站久了腰疼怎么办 站久了腰疼怎么办