从VB来看-BubbleSort(VB冒泡排序)

冒泡排序是一种简单的排序算法,具有稳定性。本文详细介绍了冒泡排序的工作原理、时间复杂度、稳定性,并提供了VB实现的例子。通过外循环和内循环过程,展示了不同数列的冒泡排序情况,包括最佳和最坏情况。最后,分享了一个在VB中实现冒泡排序的代码示例。
摘要由CSDN通过智能技术生成
                       

冒泡排序  有时也被叫做交换排序 沉没排序 ,是一种简单的排序算法通过列表反复步骤进行排序,每对相邻的项目进行比较,根据需要的升降序交换他们。 这是一种比较排序 ,虽然算法简单,但是存在大量数据排列较慢,不切实际的问题。

时间复杂度:

若待排数据的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数  和记录移动次数  均达到最小值时 ,有最好时间复杂度,为:O(n)。反之,若此数列倒序则为最坏时间复杂度,为O(n^2)。

排序的稳定性:

在冒泡排序的整个过程中,比较大小进行交换,不会改变相同数值的相对位置,所以 是一种 稳定的排序算法。若需要更多讲解举例解释可以看看这个内容 :从VB来看-排序

冒泡排序分为外循环及内循环两个过程,当执行小数下沉大数上浮的过程中,每完成一次外循环都将整理出待排序列中最大的一个数。举例如下: 当随机数列  a[i]=(6,7,0,3,4,2,8,5,9,1) 执行一次冒泡排序外循环的过程如下: 
6 7 0 3 4 2 8 5 9 1)→ (6 7  0 3 4 2 8 5 9 1)
(6 7 0  3 4 2 8 5 9 1)→ (6 0 7  3 4 2 8 5 9 1)
(6 0 7 3 4 2 8 5 9 1)→ (6 0 3 7 4 2 8 5 9 1)
(6 0 3 7 4 2 8 5 9 1)→ (6 0 3 4 7 2 8 5 9 1)
(6 0 3 4 7 2 8 5 9 1)→ (6 0 3 4 2 7 8 5 9 1)
(6 0 3 4 2 7 8 5 9 1)→ (6 0 3 4 2 7 8 5 9 1)
(6 0 3 4 2 7 8 5 9 1)→ (6 0 3 4 2 7 5 8 9 1)
(6 0 3 4 2 7 5 8 9 1)→ (6 0 3 4 2 7 5 8 9 1)
(6 0 3 4 2 7 5 8 9 1)→ (6 0 3 4 2 7 5 8 1 9
若排序数列为N个数,即需要执行N-1次外循环。

冒泡排序的完整过程可参考如下动图:

 

数字冒泡
  图像来自与维基百科

下面还有四种抽象化的冒泡排序形象表达

 

随机冒泡  随机数列的冒泡排序
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值