JS中数组的应用与简单算法(冒泡排序)
来源:互联网 发布:itunes软件许可协议 编辑:程序博客网 时间:2024/06/16 19:23
(1)查找
Indexof是系统提供的
我们也可以实现自己的查找方法
<script> var a = [1,2,3,4,5,65,6,7,8,98,9]; var num = Number(prompt("请输入要查找的值")); var index = -1;//最初认为要找的数不在数组中 for(var i in a ){ if(a[i]==num){ index = i; break; } } alert(index);</script>
这种查找方法最简单,但是查找次数与数据量成正比,效率不高。
(2)折半查找(二分查找)
假设在一个已经有序的数组中,可以利用折半查找大幅提高效率。
<script> /* * 查找思路: * 1、用left表示查找范围的起点,end表示终点 * 2、只要start<=end就重复一下步骤 * 3、和中间位置(mid)的那个数进行比较 * a.相等: 找到了,结束 * b.比中间的数大:在后半段找,即end = mid-1 * c.币中间的数小:在前半段找,即 start = mid+1 * 4、输出查找结果 * */ var a = [1,2,3,4,5,6,34,45,65,98,102]; var num = Number(prompt("请输入要查找的值")); var index = -1;//最初认为要找的数不在数组中 var start = 0; var end = a.length-1; while(start <= end){ var mid = Math.ceil((start+end)/2); //计算中间位置,取整 if(num == a[mid]){ index = mid; break; }else{ if(num>a[mid]){ //在后半段找 start = mid +1; }else{ //在前半段找 end = mid -1; } } } alert(index);</script>
折半查找的最坏查找次数与数据量的关系是对数关系,所以说它的查找效率是很高,
但是任何事情往往都是有两面性,特德高效率也是有高代价的,也就是必须要求数组有序排列。
(2)排序(冒泡排序)
<script> /* * 冒泡排序* 两个两个进行比较,小的放在前面,进行对调 * */ var a = [1,5,3,4,2,6,99,103,89,98]; for (var i =1;i<= a.length-1;i++) { for (var j = 0; j <= a.length -i-1/*(-2)*/; j++) { if (a[j] > a[j + 1]) { var t = a[j]; a[j] = a[j + 1]; a[j + 1] = t; } } } alert(a.toString());</script>
(3)队列
先进先出(FIF0),在头部出队(shift),在尾部入队(push)。
可以模拟银行的电脑排队机制
<script> var a = []; a.push(1); document.write(a.toString()+"<br>"); a.push(2); document.write(a.toString()+"<br>"); a.push(3); document.write(a.toString()+"<br>"); a.shift(); document.write(a.toString()+"<br>"); a.shift(); document.write(a.toString()+"<br>"); a.shift(); document.write(a.toString()+"<br>");</script>效果图:
(4)堆栈
先进后出(FIL0),在尾部进栈(push),在尾部出栈(pop)。
(先进后出,像刷碗一样,先刷的,压到下面了,最后才能用)
效果图:
阅读全文
0 0
- JS中数组的应用与简单算法(冒泡排序)
- 数组与集合的应用之数组排序与查询(使用冒泡排序法)
- 最简单的排序算法之一冒泡排序----js实现
- 两种简单的数组排序算法:冒泡排序和直接选择排序(升序)
- 简单的冒泡排序与//插入排序算法
- 冒泡排序算法(JS)
- js中数组的排序算法
- js 冒泡排序与 数字组合 算法
- 数据结构与算法(二)冒泡&&插入&&选择 简单排序
- js数组冒泡排序
- js数组冒泡排序
- 黑马程序员:Java数组简介与数组的应用:选择排序、冒泡排序、折半查找
- 数组的简单排序(冒泡排序,简单选择排序,插入排序)
- 冒泡算法 ,数组排序
- 冒泡算法排序数组
- 冒泡排序简单应用
- JS数组的冒泡排序法
- js简单算法(二)如何去除一个数组中与另一个数组中的值相同的元素
- 清华大学操作系统实验准备--挖坑
- linux中如何使用find命令查找文件
- 愉快玩耍GitHub
- Systrace演练
- Maven--安装Maven
- JS中数组的应用与简单算法(冒泡排序)
- 全国政协委员汪国新列席政协湖北省第十一届五次会议
- 静态顺序表
- set集合下自定义对象的唯一性、比较性
- Android View事件传递与源码分析
- Java线程间通信
- 汪国新委员、郑桂兰董事长受邀出席“复兴之路·刘宇一绘画作品展”
- 初学者使用循环的小套路
- 三商人三仆人过河问题