博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js队列排序
阅读量:4363 次
发布时间:2019-06-07

本文共 1438 字,大约阅读时间需要 4 分钟。

任务描述

l  基于上一任务

l  限制输入的数字在10-100

l  队列元素数量最多限制为60个,当超过60个时,添加元素时alert出提示

l  队列展现方式变化如图,直接用高度表示数字大小

l  实现一个简单的排序功能,如冒泡排序(不限制具体算法),用可视化的方法表达出来

 

 

设置max和min就可以设置input的值的范围

测试的时候发现不在范围的数值还是能够输入,加入判定

 

if(10<=num&&num<=100){                  ......        }else{         alert("输入的数值不在10-100,请修改");}

 

if(data.length>60){         alert("超过队列规定限制数量");          return false;}

 

Return false当超过60的时候直接跳出。

//数组表达方式变成height

liCreate.style.height = data[j]*2+"px";

 

通过这个方式显示对应数字的高度,进行可视化。

 

然后进行css底部对齐,

display: inline-block;

因为我的数据处理方式是先进行数组修改,再重新显示,所以要做排序的话,直接将处理好的数组进行排序就能完成。

Js自带排序算法sort();

不过我打算尝试其他的排序算法:

先搬一张图

 

这次就用最基础的冒泡排序

冒泡排序算法的运作如下:(从后往前)

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 

 

这博客非常好的直观得看到排序相关的知识。

对于排序可视化,达到直观看到排序效果

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

通过setInterval()来用毫秒周期使排序的步数清晰可见。clearInterval();可以停止周期

len = arr.length;for(i= 0;i
数组[y+1],交换数组[y]和数组[y+1] ...... }}

 

改成setInterval()方式

var timer = setInterval(function(){                if(i
数组[y+1],交换数组[y]和数组[y+1] ...... j++; }else{ j = 0; i++; } }else{ clearInterval(timer); }},500);

 

完整代码:

转载于:https://www.cnblogs.com/liushuang-hangzhou/p/6480571.html

你可能感兴趣的文章
5_4学生类
查看>>
利用cv与matplotlib.pyplot读图片与显示图片
查看>>
算法——(转)动态规划入门
查看>>
webpack 的sass-loader打包出错问题,提示 Module not found: Error: Can't resolve '*.css' 的问题...
查看>>
HDOJ---2066 一个人的旅行[Dijkstra算法]
查看>>
35个jQuery小技巧!
查看>>
20140308 std::fill
查看>>
【题解】大床Nim (2019,5.23)
查看>>
[考试反思]0818NOIP模拟测试25:清心
查看>>
常用类string的用法
查看>>
语句- for () 循环语句-迭代法
查看>>
jQuery.动画
查看>>
suoi16 随机合并试卷 (dp)
查看>>
五 : springMVC拦截器
查看>>
数据结构七大排序
查看>>
你真的了解iOS的深浅拷贝吗?
查看>>
对症下药,找到Visual Studio每次编译都提示不是最新的根本原因
查看>>
19 反射
查看>>
MTK Android Driver :Camera
查看>>
Servlet含义与工作原理
查看>>