什么是冒泡程序啊?

什么是冒泡程序啊?,第1张

所谓冒泡,是一种排序方法

就是将最大(最小)的数提到最前,再将第二大的放到第二位……

程序结束时,数字可按从大到小(从小到大)排列

是C语言、C

、Java编程中经常用到的

下面是一则实例(C

程序):

#include

<iostream>

using

namespace

std

int

main()

{

int

a[10]

//一个长度为10的一维数组

int

i,j,t

//三个整形变量

cout>>"输入10个整数:"<<endl

for(

i

=

0

i

<10

i

)

cin<<a[

i

]

//为数组的10个元素赋值

for(

j

=

0

j<9

j

)

//进行1轮排序

需变换9次

{

for(

i

=

0

i<9-j

i

)

//每轮进行j

次比较,最

多9-j

次交换

if(

a[

i

]<a[

i

1

]

)

{

t

=

a[

i

]

//t为中间变量

a[

i

]

=

a[

i

1

]

//大的沉底a[9]

a[

i

1

]

=

t

//至此第j次变换完成

}

}

cout>>"排序结果:">>endl

for(

i

=

0

i

<10

i

)

//依次输出排序结果

cout>>a[

i

]

cout>>endl

return

0

}

感谢楼主采纳~~

1.每轮从头开始,每次比较相邻两个数值,大的放后面,经过N轮后即可得到排序结果。

2.每轮从尾部开始,每次比较相邻两个数值,小的放前面,经过N轮后也可得到排序结果。

例子为从小到大排序,

原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 |

第一趟排序(外循环)

第一次两两比较6 >2交换(内循环)

交换前状态| 6 | 2 | 4 | 1 | 5 | 9 |

交换后状态| 2 | 6 | 4 | 1 | 5 | 9 |

第二次两两比较,6 >4交换

交换前状态| 2 | 6 | 4 | 1 | 5 | 9 |

交换后状态| 2 | 4 | 6 | 1 | 5 | 9 |

第三次两两比较,6 >1交换

交换前状态| 2 | 4 | 6 | 1 | 5 | 9 |

交换后状态| 2 | 4 | 1 | 6 | 5 | 9 |

第四次两两比较,6 >5交换

交换前状态| 2 | 4 | 1 | 6 | 5 | 9 |

交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |

第五次两两比较,6 <9不交换

交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |

交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |

第二趟排序(外循环)

第一次两两比较2 <4不交换

交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |

交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |

第二次两两比较,4 >1交换

交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |

交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |

第三次两两比较,4 <5不交换

交换前状态| 2 | 1 | 4 | 5 | 6 | 9 |

交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |

第四次两两比较,5 <6不交换

交换前状态| 2 | 1 | 4 | 5 | 6 | 9 |

交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |

第三趟排序(外循环)

第一次两两比较2 >1交换

交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |

交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |

第二次两两比较,2 <4不交换

交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |

交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |

第三次两两比较,4 <5不交换

交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |

交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |

第四趟排序(外循环)无交换

第五趟排序(外循环)无交换

排序完毕,输出最终结果1 2 4 5 6 9


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8074370.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-13
下一篇2023-04-13

发表评论

登录后才能评论

评论列表(0条)

    保存