选择排序的核心是将第n个数,和第n个后面的数据进行对比,也就是和第(n+1,n+2...,arr.length)个数进行对比,
找到小的那个,更换位置,这样下去就可以找到最小的那个。
选择排序用到了两遍的for循环,第一次for循环的目的是找到对比的数据,第二次for循环的目的是找到需要对比的
数据,以往复的循环,排出来想要的顺序。(今天就不在prototype上面写了)
举个栗子:
五个元素: E A D H B(按字母的顺序排序)
第一次对比: 将 (数据的第一个位置的数) E 和(第一个后面的数据) A D H B进行对比
执行结果是 A E D H B
第二次对比: 将 (数据的第二个位置的数) E 和(第二个后面的数) D H B 进行对比,第二个之前 的位置不改变
执行结果是 A B D H E
第三次对比: 将(数据的第三个位置的数) D 和(第三个后面的数) H E进行对比,第三个之前的数据位置不改变
执行结果是 A B D H E
第四次对比: 将(数据的第四个位置的数)H 和 (第三个后面的数)E进行对比,第四个之前的数据位置不改变
执行结果是 A B D E H
有必要说一下,网上好多小伙伴都把选择排序,插入排序,冒泡排序搞不清楚,网上的博客很多,有些里面也有不正确的,需要深入理解
,明辨是非。在接下来的几天里,我会持续更新博客,探讨这些排序的核心思路。还是不是很清楚的同学要深入理解这些排序可以去买书看看。
不说了,上图叭:
排序算法二(选择排序)
最新推荐文章于 2022-08-23 16:09:03 发布