200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 关于js数组的六种算法---水桶排序 冒泡排序 选择排序 快速排序 插入排序 希尔排

关于js数组的六种算法---水桶排序 冒泡排序 选择排序 快速排序 插入排序 希尔排

时间:2021-05-15 20:55:53

相关推荐

关于js数组的六种算法---水桶排序 冒泡排序 选择排序 快速排序 插入排序 希尔排

1.水桶排序;

原理:首先找到arr这个数组中的最大项 max(此处为88),然后创建一个新的数组bucket,bucket数组长度为max,然后for循环遍历,在bucket的索引为arr[i]的添加数据,可以添加字符"water";然后创建一个新的空数组arr2;给数组arr2增加bucket数据。

代码如下。

var arr = [19,8,47,34,78,95,64,22,50,88];var max = Math.max.apply(false,arr);//找出arr数组中的最大值var bucket = new Array(max);//创建水桶数组,给数组添加“water”字符for(var i = 0;i<arr.length;i++){bucket[arr[i]] = "water";}var arr2 = []; //创建一个空数组。for(var i in bucket){ //遍历让bucket的选项添加到arr2数组中arr2.push(parseInt(i))}console.log(arr2)复制代码

2.冒泡排序:

生活原理:

如上图:五个人排队,按高矮顺序排;老师说更高的往后站,两两同学相比较,ps(假设小明和小红比,小明更高往后站,小张比小明高,他们位置不用换)第一次比较可以排出班级第一高的人,第二次比较可以找出第二高的人

js思路:找出数组中的最大值,排好序,接着排第二位,然后第三位。。。。。。。。

代码如下复制代码

3.选择排序

生活原理:假设小明是最矮的;然后通过比较,发现二狗要比小明矮,就和小明换位置,两两比较,通过第一次比较可以找出二狗是最矮的人,然后假设队伍的第二个人是最矮的,让他和剩下的人比较身高,依次找出其他人的位置。

js思路:假想数组中的任意一个值是最小;然后通过比较两两比较,找出索引值,换位,然后赋值。

4.快速排序

生活原理:假设小张(中间位置)是最矮的,比小张矮的往小张左边站,比小张高的往右边站;然后左边的人群再次比较,右边的人群再次比较身高,最后左边的人+小张+右边的人就是高矮顺序。

js原理:取数组的中间值,比较该值和其他数组的值,大于放到right数组中,小于放在left数组中;然后递归继续给数组排序

5.插入排序

插入排序的原理比较好理解,就像玩斗地主一样,抽到第一张牌,以它为中界值,比第一张牌小的往左边放,比第一张大的往右边放。第三张继续往前面两张插,依次插入所有的牌

js原理:以第一个为基点,分别插入后面的值。

6.希尔排序:

生活原理:假设一个班的人成绩固定,智商注定了成绩,这个班的人实施了班级互助,比如一个班级有10排,1排的和6排的人成为学习小组,2排和7排成为学习小组,依次类推,然后考试成绩出来了,两个学习小组之间互相比较,成绩高的往前坐,成绩差的往后坐(现在有个大概的排名了),然后再次考试,1排和3排成为学习小组,2排和5排成为学习小组(成绩好坏与座位更加趋近了),再次考试,1排和2排是学习小组。3和4是学习小组,依次,再次考试,再次排位置,此时的位置和成绩就是正相关了------------ps(委屈脸,不符合生活逻辑,强行解释一波,这个老师怕伤害孩子自尊,所以采取了这样的排法,哈哈,这就是保护孩子自尊的方法,滑稽脸.gif)

js原理:将待排序的序列分为若干组,在每组内进行直接插入排序,以使整个序列基本有序,然后再对整个序列进行直接插入排序。

关于js数组的六种算法---水桶排序 冒泡排序 选择排序 快速排序 插入排序 希尔排序的理解。...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。