之前是深入理解过的,结果今天发现,还是有点混乱,甚至把冒泡排序跟选择排序弄混了,这次用java 都分别实现分析一下:
简单的分类:冒泡排序跟选择排序一样,都是属于蛮力法,暴力遍历。
冒泡排序:(由小到大)代码:
结果:
基本思想就是:
两两相比,然后交换(即内层循环)
但是,此时我们发现,并不能满足我们的要求,那怎么办呢?
再比较一次,每一个数比较一次,一共有几个数就比较几次,
于是,就有了最外层循环。
这样时间复杂度是:。。。。。。。。实不相瞒,我不会算,但是,对于一个研究算法人来说不会时间复杂度跟空间复杂度是十分可耻的。
还可以优化一下,怎么优化呢?
大家看,我们从i=0的位置比较的时候,已经将最大数移到了最右边,那么,言外之意就是最后一个数不用跟其他数比较了,所以就可以这样写:
优化的冒泡排序:










网友评论