00:00
嗯,好了同学们,那么接下来咱们来看一看这个算法各位啊算法,那么算法这块呢,呃,我们今天上午啊,其实也介绍了一下啊,介绍了一下。呃,打开这个常见的算法呀,这块其实还还有很多啊。嗯,比如排序这块有很多有冒泡排序对吧,有选择排序。啊,当然还有一些其他的排序啊,比如说昨天有同学问我这个堆排序对吧?啊,还有堆排序啊,还有这个排序,那排序查找算法其实有很多,除了二分法查找还有别的。啊,还有别的那么这块呢,咱们今天下午的话就看一看这几个吧,行吧,这几个啊啊,因为这几个呢,最主要是在我们面试的时候啊,可能问的比较多一些啊,问的比较多一些,所以这块呢,咱们就重点看看冒泡排序,然后选择排序,还有二分法啊查找二分法查找。那么我说了啊,大家呢,这个东西怎么去听呢?哎,你可以大概听一听,理论理解这意思,然后接下来干什么呢?哎,你手机拍个照片啊,留个纪念啊,以后万一用得上了对不对,那以后我们在实际的开发中,我们其实用不到这些东西啊,因为Java已经封装好了,有一些相关的工具,一些相关的方法调用就可以很轻松完成查找,可以很轻松的完成什么呀,排序啊排序,而且那么散,公司写的这个排序算法比我们这个啊还要快很多啊,还要快很多,那行了,那既然说到数组,那么咱们就得把这些算法啊,还有这些,呃,查找算法呀,排序算法呀,我们都看一看行吧,哎,熟悉一下啊,熟悉一下行,那咱们就开始了,各位啊,开始了。
01:41
来打开我们这个叫做idea工具啊,在这个目录下啊,不是这个homework homework是我们今天上午写的这个程序啊来。在这呢,我们去新建一个class,各位啊,这个class呢,我们就叫做冒泡吧,冒泡啊。Bubble sound。
02:02
冒泡排序啊,这是一个类。来,Ctrl shift f12最大化,来,我们写上啊,这叫冒泡排序。算法。嗯,那么首先的话,我们这样就是先去讲一讲什么叫冒泡排序。啊,冒泡排序,呃,大家思考一下,呃,就说我们有一桶水。有一桶水啊。这桶水里边有气泡。是不是,哎,假如这这是一桶水啊,一桶水。然后呢,它里边有很多什么呀,气泡啊,小的也有。哎,大的也有。更大的呢,它也有。是吧,啊,比他大的呢,也有啊。都在同一个,我们说叫这叫维度吧,啊,同一个纬度上,然后接下来干什么呢?它呢,这是一桶水啊,那你是不是应该大的气泡先出来呀。
03:05
对吧,最大的气泡是不是先出去啊。对吧,这个气泡实际上出去啊。一桶水啊,有大气泡有小气泡,这个先出去。然后这个出去。然后这个再出去是吧,哎,这个再出去。那你一桶水当中肯定最大的气泡线出去啊,如果在同一个所谓的纬度上啊,纬度啊。啊,大的气泡,先出去啊,就这意思。那行了,那我们这个冒泡排序呢,就就和我们刚才所描述的这桶水差不多啊,你想象一下对吧,大夏天的是不是非常热,你打了一桶水,是不是这桶水里面有很多气泡是不是?哎,有小的有大的,哎,有小的哎有大的对吧?有小的哎,有大的对吧?哎,那大的气泡先出去啊,出去之后呢,剩下这堆气泡里边谁是最大的?哎,再出去,那么剩下的,哎,这堆气泡里边谁是最大的诶。
04:07
再出去啊,出去最后出去呢,肯定是最小的啊,一个气泡,一个气泡往外走啊叫冒泡排序算法,冒泡排序算法各位啊,那么解释是这么解释,那么这个呃,它的这个原理是什么。来,我们可以在这里呢,给一个数组。呃,比如说这个数组呢,叫做。AR,然后里边数据啊,我随便给给个比如说三。二。七六啊,再给个832768啊,现在呢,这是一个什么呀?哎,Int类型的数组对象,然后接下来我们要经过什么呀,叫做经过冒泡排序算法。啊,对。
05:03
数组中元素进行排序。那么这个冒泡排序算法的。核心是什么?来大家看一看啊,冒牌序算法32768。他怎么做呀,拿着这个三啊第一个元素啊,然后呢,怎么着呢,哎,和我们第二个元素进行对比,如果说呢,我们这个元素啊,是比右边这个元素大。那么这个时候呢,我就拿着这个数据啊,哎,和右边这个数据怎么着交换位置。交换位置啊。明白什么意思吧,就是拿着三和相邻和右边相邻的啊。
06:02
和右边相邻的好的后进来了是吧。哦,卡进不来,可能是保利威视出问题了呗。啊,拿着三和右边相邻的二进行什么呀比较。是不是,哎,拿着三和右边相邻二进行比较。如果左边大于什么右边。交换位置。明白吗?啊,交换一下位置。它就会变成什么呀。二和三对不对,三在紧接着和七进行比较。啊,发现呢,左边怎么着,是大于右边还是小右边啊是小于右边,那这就不用交换位置了。
07:01
就不用交换位置了啊,来捋一下啊冒泡排序算法。原始数据是这样的,拿着三和右边相邻的二进行比较啊。三。大于谁啊二。交换位置吧啊。交换位置之后的数据。是不是这样的?对吧,往这写吧。32768啊,拿着三和右边相邻的二进行比较,三大于二交换位置。交换位置之后的数据是它。那么。他继续干什么呀,三啊,继续拿着上一次。比较之后的结果。
08:01
中右边较大的数据。和后续的数据继续比较。啊,其实这个文字我也可以不写啊,可以不写,我大概说一下吧,各位327683和二进行比较对不对,发现三怎么着比二大交换位置吧,哎,交换位置。对,交换位置,到时候我会告诉你怎么交换啊。交换位置之后呢,是不是可以永远保证右边这个这两个数据比较之后,是不是永远可以保证右边这个数字是大的,对吧?拿着右边这个数字和什么和后续的数据进行进行继续比较,如果说我们这个呃呃,仍然前面这个数据大于后面这个数据,那我们再交换位置。啊,那如果是这样下去的话,大家想一想,我们第一次循环结束之后,是不是可以保证我们最大的数据在右边。
09:00
大家思考一下啊。我也别写了,写这个可能反而会影响大家去理解啊,就现在怎么着呢,就是说。来这样啊,我们实打实的来来一次,一一一步步去走,行吧,一步去走啊。呃,原始数据各们啊,列出来第一次循环。是怎么样的,各位。32768是不是三和二交换一次位置啊。对吧?哎,然后这个数据继续再往下,我问大家是不是三和七需要比较一次。但是七比谁三大对吧,所以他不用交换位置,虽然你不用交换位置,但是这次得比对吗?是不是得比一下各位。
10:04
就是这个你要注意啊,虽然不需要。交换位置。但是三和七还是需要怎么着比较一次啊,需要比较一次的。来,现在这个七是不是就是最大的了,七和六进行比较对不对,7比6大,所以再往下走。是不是这个六就到这儿了。然后这个七是不是就到这儿了。对吧,哎,然后紧接着我们是不是拿着这个七和这个八进行比较。不需要交换位置对吧,但是怎么着需要比较一次。明白吗?来看一下啊。第一次大的循环。最大的是不是跑到最右边了。
11:05
你集中精力听啊,我只是说这个数据各位啊,原始是32768第一次循环。三和二比较。对不对,三和二比较。对吧,二小于三。所以三和二交换位置,二和三。交换位置,它交换位置之后的数据就是23768,然后紧接着你交换了位置之后,我拿着这个三是不是就可以和七进行比较了,由于你七是大的,所以这次不需要交换位置,但是你是不是还是得比一次啊,对吧?好,那么接下来由于你上面这个二和三交换了,三和七不需要交换,再往下继续这一次应该是七和六吧。是六啊。
12:01
七和六。交换位置吧,交换位置之后的结果不就是这个结果吗?是吧,哎,然后接下来是不是拿的右边这个比较大的数据和后续的数据进行比较啊,哎,七和八是不是再比较一次啊,咱不需要交换位置,这就是第一次循环。各位啊,第一次循环。那么接下来我们现在参与比较的数据就是哪些了。经过第一次循环,经过第。经过注意听啊,第一次循环。参与比较的数据就变成了什么,变成了2367对吗,各位。啊八是不是已经是最大的了。冒泡吗?第一次循环结束,是不是最大的跑到跑出来了,经过第一次循环参与,此时啊,剩下参与比较的数据是2367吧。
13:05
对不对,好,那2367上来,二和三是不是比较一次。对不对啊,二和三比较一次不需要交换位置吧。对吧?对,二和三比较不需要交换位置,但你得比较一次,那紧接着三和六比较吧。是不是,哎,你看看三和六怎么着啊,比较吧,不需要交换位置吧,对不对啊,然后紧接着呢,三和六比较完之后是六和七进行比较吧。对不对,哎,那就是六和七比较,不需要交换位置。对吧,那经过第一次。此时剩下的是吧,参与比较数据是这个,这是什么呀,第二次循环吧。
14:04
对不对,哎,第二次循环啊,那接下来经过第二次循环,此时剩下参与比较的。数据经过第二次循环啊,此时剩下参与比较的数据是什么?是236。明白吗?那这个是第三次循环吧,哎,第三次循环啊,第三次循环应该是二和三比较一次啊。对吧,哎,还是那句话,不需要交换位置吧。但你得比较啊,得比较,然后紧接着呢,三和六是不是比较一次啊。对吧,三和六比较一次是不需要不需要交换位置啊,因为右边是大的呀。对不对啊,那经过什么呀,经过这叫第三次吧,哎,经过第三次循环,此时剩下参与比较的数据是什么呀。
15:06
是二和三。看见了吧,哎,那第几次啊,第四次循环吧,是不是啊,第四次循环就是二和三进行比较。啊,然后呢,不需要交换位置,嗯。那这个程序就结束了。你好,看看。32768。32768。能看明白吗?第一次循环。大的出来了。第二次循环呢?剩下的数据吧,再找出最大的吧。对不对,第三次呢,剩下的数据找出最大呀。第四次呢,也是剩下的数据找出最大吧。
16:04
每一次循环结束之后。都要找出最大的数据。啊,都要找出最大的数据,放到参与比较的这堆。数据的最右边。注意啊,每一次循环结束之后,都要找出最大的数据,放到参与比较的这堆数据的最右边。冒出最大的气泡吗?冒出最大的那个气泡。何欣拿着左边的数字和右边的数字比对。当左边大于右边的时候。
17:04
交换位置。注意啊,拿着左边的数字和右边的数字比对,当左边是大右边的时候交换位置。我觉得这个呢,大家也可以再来一个别的,别的来咱们再再去看一个别的。冒泡。换一组数据啊,冒泡排序来,咱们再来一遍啊,循环次数咱们先不用管它,先不用管它啊,看好了啊,嗯九八嗯十,然后是11。9876。要。幺幺吧,好了,咱们看看这个怎么比各位啊,再来一遍啊,咱们再来一遍,把这个冒泡排序,咱们吃透理论上去吃透了它好吧。嗯。
我来说两句