00:00
好呃,那接下来的话呢,我们就开始来看一看,具体这里边呃,需要大家掌握的啊,我们说第一个就是叫冒泡排序,这个需要大家会去写啊,那我们就来写一下啊。新建一个class,嗯,这个冒泡呢,我就叫做bubble啊bubble salt就是泡的一个test bubble就是气泡的意思。哎,这个来我们来实现呢,叫呃数组的叫爆泡排序,哎的实现,那首先呢来一个main方法,哎,我们呢先给一个数组,这呢因为需要排序了,那不妨我现在就拿in特形来举例子,哎,那实际上呢,像string类型也是可以排序的,哎刚才课间有同学问说string型的数字怎么排序,那就按照ABC的顺序排就完了。啊,那不是abcd是中文,中文呢,你是不是也有个这个unicode值啊。
01:01
对,就按照这个中文的那个unicode值来进行排序就可以了啊,就是都可以排序啊,后边呢,咱们讲的对象,对象也可以排,那比如说你按照你那个对象的那个,比如人啊,这些人进行排序,那就看人的年龄是吧,你可以按照人的一个关键字啊,它的一个属性进行排啊,这呢,咱们就先拿这个整形来举例子。我里边呢,举一些这个顺序呢,是混乱的一些数据。啊,也可以举一些重复性的数据。好哎举比如说呢,就是这样的一个数组,哎顺序呢是混乱的,下边呢,我们这个想实现这个叫冒排序啊行,哎冒泡排序以后,我们希望呢,咱们再去便历的时候,对它是从小到大,或者呢是从大到小都行,看你的这个需求。
02:10
哎,目前的话呢,我们要执行这就是你一开始的这个顺序,好下边呢,我们看如何实现猫号排序,那我们就得知道猫后排序它的一个设计思想,哎设计思想的话呢,大家就可以看具体的这个PDF了啊,这个我们找一下啊。好在这儿呢。哎,猫儿排序啊,这个猫儿排序呢,这有一个基本的思想,它就是从前往后去比,比的呢,是相邻元素的这个数据,谁大谁小啊,那我们直接呢来看下边这个例子了,好,这呢是我,呃,就上边这个啊,是咱们这个一个具体的数组。哎,这个元元素的顺序呢,是混乱的,我们现在呢,让它从小到大排,这个对于冒号排序来讲,它比较的是相邻两个元素,好大家看一下这样的一个想法,然后我们看看代码怎么实现啊,首先呢,先看前两个,这两个呢,是不是得需要交换一下啊,对这个我们就要交换一下,交换完以后呢,再接着这两不用这两不用这两。
03:14
换换是吧,再换A,好出来一个最大的了。注意我们刚才是不是执行了比了好多次是吧,可以把刚才呢,我们出来最大值的这个过程中称作叫第一大轮,呃,第一大轮我们出来一个最大值,然后第二大轮又回到最初,哎,从剩下的这个黑色里边呢,再挑出来一个第二大的啊,这个不用换,不用换换。换换好第二大轮,我们出来一个第二大的,然后第三大轮,然后你你会发现是不是每一大轮这个数就要比的就越来越少了,对,你要注意到这样一个情况啊,一会我们写的时候也得是这样的,然后每一大轮呢,是不是都从头开始对的啊,好,不用换换换。
04:06
换好,这是第三大轮,好第四大轮。换不用换了是吧,第五大轮换,这不用换了。第五大轮啊,第六大轮,哎,这后后边的稍微有点快了啊,诶一下就出来了,那我们这有八个元素哈,这四个,这四个问你说八个元素我们这一共需要经过几大轮,八个元素是不是七大轮就可以了,最后剩的那个自然而然就最小的了,行那好了看看啊怎么写冒号排序,首先呢,我们这个外层负号肯定是几大轮的意思了啊,I等于零,I呢小于a2.x减个一对啊,然后I加加。
05:01
就是你长度是多少,我们这个,呃,少一个是吧,少一轮啊,那你要是忘了减一了,或者没写呢,其实也可以是吧,你就比如说咱们刚才这有八个元素,我就经过八大轮,八大轮就八大轮最后一个你一比发现就他自己了,马上就停了,其实是吧,哎,就是其实这个你写呃减一不减一都行,减一呢可能体现的更好一点啊,然后呢,我们在里边这就是针对这一大轮的啊嗯,你就得是两个两个比,但是这时候两个两个呢,是相邻的两个,我用接来表示哈,每一大轮的时候呢,都是从头开始的,哎,然后接呢,这是一个关键哈,接怎么着,然后呢,接是不是越来越多,越来呃越来越靠后去移,是吧,关键的就是这个位置怎么写,哎怎么着。I减J。
06:03
这勾勾跟勾还有关系呢,应该左边有勾了,右边就不能再有勾了是吧。怎么写啊,哎,就是当大家不知道怎么写的时候呢,你就举例子呗,比如说我们这个I是零,就第一大轮,第一大轮,你就比如说这个问题吧,这个这个这个里边I是八是吧,哎,不是I是八元素是八个I是零的时候,二零的话,我们里边嗯,比过几次啊算。I是零,就是第一轮的时候啊,一次两次,三次四次五次六次,比过七次,比过七次,那我们这个元素是不是八个呀,哎,元素是八个,比过七次,那不就相当于我们这儿呢,是A2。点LA减了个一是吧,当我们这个I1的时候呢。
07:01
就是第二大轮是不是再少一个啊,在22的时候又少一个,不就相当于在这个基础上再减去一个I吗?哎,就是大家呢,就是你呃整不清楚的时候,你就举举例子,哎写写例子就可以了哈,哎二零你看这个时候是几个,二一的时候这是几个,哎你写你就知道这个规律是多少了啊这种啊好嗯,这个没有等号啊。啊,这个没有等号了,那里边的话呢,我们就是比较这个相邻的两个元素判断说如果我们的AR2阶它呢,发现是大于啊A2J加一的,咱们这是从小到大排前面的数,如果比后边这个数大。就交换,嗯,Arj。A2A2接加一。
08:00
哎,G加一等于tap。这样的话呢,我们就交换这两个元素,交换完以后呢,你再接加加再看,再在后边的这俩再走走走走走。像第一大轮,第一大轮哈,第一大轮的话呢,是可以到最后一个元素的,就是你得保证这个G加一是取到最后一个。对吧,你像这个这个其实其实基本上就写完了哈,就咱们再来分析一下,你像我们这个I是零的时候,就是第一大轮哈,第一大轮的时候呢,这个减零,那约等于没就等于没减哈,先忽略掉它,你像第一大轮的时候呢,我这个接啊是小于LAS减一的,小于LAS减一就意味着你是最大是到LA4减二。Les减二是它,然后你再加个它不就表示Les减一嘛,Les减一恰好是不是就我们索引最大的那个值啊,哎,那不就能够保证它正好能到最后一个位置嘛,哎,然后呢,当你这个I加个一的时候呢,我这正好我得减一个,你这块多一大轮,我这就得减一个,就是保证我们后边的元素呢,就每次咱们不是最后这块都少一个嘛,对,越往后你不就都少比一个嘛,哎,就是所以我在这个位置每次都让它再减个数,哎,保证让我们这个缩以呢,就不用每次都到最后了。
09:18
哎,就是这个行,那其实就写完了就啊,哎冒号排序其实就这样写,哎写完我们执行一下,哎,你看这这从小到大。哎,这就叫做冒泡排序,这是属于我们这些排序当中比较简单的一个,诶需要大家呢,能够手写一个冒泡排序,核心呢,其实就是这两行,再核心呢,其实就是关注一下这个,哎循环条件哎就可以了啊。
我来说两句