2.冒泡排序

作者: 寒枝旧廊 | 来源:发表于2017-12-21 20:35 被阅读0次

        之前给大家介绍的桶排序想必让大家狠狠的爽了一把给别人排成绩的乐趣哈哈,不过它只能给成绩排序,这些成绩如果对应着人呢,你就没法对人进行排序了。试想高考泱泱千万大军,你用桶排序只是排了成绩,那谁去985,谁去普通本科呢,这就不得而知了。不如让你去吧,想的美醒醒吧。还有一个大问题,我们申请的内存空间也是很浪费的,你申请了10000个内存空间,结果最后只用了2个,哇这么浪费的吗。而且还只能存整数,==那有别的方法不这么浪费吗?今天我给大家介绍一种新的排序方式:冒泡排序

        听好了,先说一下冒泡排序的思想,让我们来做一个有思想的程序猿和程序媛。冒泡排序的基本思想就是:每次比较两个相邻的元素,如果它们的顺序错误就把他们交换过来。啧啧,原理也不是很难啊。哈哈接任务了。先来个简单的,和桶排序一样,排几个数字。那干嘛不用桶排序?我。。。,哪这么多废话,快干活。是。。。

        我们把17,35,55,79,13这5个数从大到小进行排序,看清楚了从大到小,也就是越小越排在后面,特么别废话。我们先比较第1位和第2位的大小,第一位是17,第二位是35。17大于35,特么这不是废话吗,要我干什么。我们只需要把17与35交换一下顺序。越小的越靠后嘛。此时上面的顺序就变成了35,17,55,79,13。再按照刚刚的方法比较第2位和第3位。第2位是17,第3位是55。结果变为35,55,17,79,13。接着我们再比较第3位和第4位,结果变为35,55,79,17,13。最后我们再比较第4位和第5位。结果为35,55,79,17,13。此时我们已经把最小的数13放在了最后面。惹不起惹不起,咋不上天呢。

        我们来总结一下刚刚的的移动过程。我们每次都是在比较相邻的两个数。如果后面的数比前面的数大,我们就交换这两个数的位置。直到最后两个数比较完毕,最小的数就在最后一个了。我们把刚刚的那个过程称为“一趟”。接下来我们就将剩下的4个数一一归位了。

        接下来我们开始第2趟,将倒数第2小的数归位。首先还是先比较第1位和第2位,然后是第2位和第3位,接着是第3位和第4位。此时不需要比较第4位和第5位了。因为刚刚我们在第1趟的时候已经把最小的找出来,因此不用再比较了。结果为55,79,35,17,13

        再然后我们开始第3趟,将倒数第3小的数归位。比较第1位和第2位,然后第2位和第3位。结果为79,55,35,17,13。

        最后我们进行最后一趟,比较第1位和第2位。结果为79,55,35,17,13

        冒泡排序的原理:没一趟只能确定将一个数归位。哇哇哇,我好像有点懂了。那岂不是美滋滋。综上所述:如果有n个数进行排序,我们仅需要n-1个数进行归位,也就是说我们要进行n-1次操作。废话少说上代码。威。。。武。。。。

        哇,那能不能解决存名字的问题啊?当然可以啦,哈哈哈代码呈上来

        来来来:冒泡排序的核心部门是双重嵌套循环,冒泡排序的时间复杂度是O(N^2)。这是一个非常高的时间复杂度。咳咳应用价值不是很高。怎么到最后才说。怎么滴,不服来打我啊哈哈哈。

相关文章

网友评论

    本文标题:2.冒泡排序

    本文链接:https://www.haomeiwen.com/subject/dgirwxtx.html