学习笔记——冒泡排序(python+js实现)

冒泡排序(python实现)
冒泡排序的原理:
冒泡排序作为经典的算法问题,可以说是各位程序员入坑所需要必须掌握的知识技能。今天就带领大家一起来看一下它的原理以及如何实现:
它的原理其实很简单,就是依次比较相邻的两个元素,将较大的和较小的元素进行位置交换,使较大的元素“下沉”,反复重复此过程,直至所有元素都下沉,即可完成排序。怎么样?它的原理是不是很简单,接下来我们放一张图片来更深一步的了解其原理:

那么如何利用代码实现呢?最简单的方式就是,将自己模拟成机器,从机器的角度去看待问题。结合图片,我们可以发现对N个元素实现一次冒泡排序,需要比较N-1趟(注意,我这里说的是趟而不是次数),而比较的次数,要取决于它是进行的第几趟排序,不难发现,第一趟我们需要比较N-1次(因为相邻元素相互比较),那么第二趟呢?可能会有同学说也是比较N-1次,这确实没错,但是倘若比较N-1次,那么我们的元素沉到末尾是不是就没有得到体现了呢?与此同时若想实现代码的优化,我们要少做无用功,那么第二趟应该比较的次数就是N-2次,以此类推,第几趟比较,其比较的次数就是几次。到此我们已经分析透彻其实现方法,接下来上代码。`

def BubbleSort(li,n):
    for i in range(n-1): #上述的趟
        for j in range(n-i-1): #上述的次
            if (li[j]>li[j+1]):
                li[j],li[j+1]=li[j+1],li[j]       
if __name__=='__main__':
    l=input('请输入待排序的数组:')
    llist=l.split(',')
    print(llist)
    llist= [int(llist[i]) for i in range(len(llist))]#转成数组
    BubbleSort(llist,len(llist))
    print(llist)    

js:

var BubbleSort=function(){

    var list=[1,4,0,5,8,9,4]
    for(var i =0;i<list.length-1;i++)
    {
        for(var j=0;j<list.length-i-1;j++)
        {
            if(list[j]>list[j+1])
            {
            var temp
            temp=list[j]
            list[j]=list[j+1]
            list[j+1]=temp
        }
    }
    }console.log(list)
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值