javascript的冒泡排序

var arr=[5,0,-56,900,12];
//大的排序次数(arr.length-1)
var flag=false;
for(var i=0;i<=arr.length-1;i++){
for(var j=1;j<=arr.length-1-i;j++){
if(arr[j-1]>arr[j]){
var temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
flag=true;
}
}
if(flag){
flag=false;
}else{
flag=true;
}
}
document.writeln(arr);

查找

我们常用的查找有两种:

①顺序查找

②二分查找

二分查找有个前提:该数组是有序的,如果不是有序的数组,则不能使用二分查找。

代码:

//思路:找到数组的中间数,和你要查找的数(findVal)进行比较,如果
//midVal>findVal 则说明findVal在数组的左边,就把该数组二分了(就只在左边查找。)
function binarySearch(arr,findVal,leftIndex,rightIndex){
//找到这个值
if(leftIndex>rightIndex){
//提示找不到
document.writeln("找不到");
return;
} var midIndex=arr[Math.floor((leftIndex+rightIndex)/2)];
var midVal=arr[midIndex];
//比较
if(midVal>findVal){
//在左边找
binarySearch(arr,findVal,leftIndex,midIndex-1);
}else if(midVal<findVal){
binarySearch(arr,findVal,midIndex+1,rightIndex);
}else{
document.writeln("找到 下标为"+midIndex);
return;
}
}

注意:在js中(1+2)/2=1.5,它不会自动截断。需要使用

Math.floor((1+2)/2)

最新文章

  1. HMM 自学教程(八)总结
  2. jmeter学习预热
  3. SQL Server中行列转换
  4. PYTHON代码摘录
  5. tp数据表字段缓存
  6. java使用poi创建excel文件
  7. hdu_4497GCD and LCM(合数分解)
  8. spring mvc 扩展 标签解析
  9. 【.NET Core项目实战-统一认证平台】第四章 网关篇-数据库存储配置(2)
  10. Oracle 表锁与解锁
  11. Symantec Backup Exec Agent 推送错误Error connecting to the remote computer. Ensure that the computer is available, has WMI enabled and is not blocked by a firewall
  12. python 管道、数据共享、进程池
  13. echarts 中国地图实现 省、市、区县三级联动,省级下钻、市级下钻
  14. 大道至简第一章Java伪代码
  15. 03_java基础(三)之第一个程序与开发工具的安装
  16. CentOS修改yum源为阿里云
  17. bzoj 4036 集合幂级数
  18. 工业通信的开源项目 HslCommunication 介绍
  19. BZOJ4416 [Shoi2013]阶乘字符串 【序列自动机 + 状压dp】
  20. 模块型css样式

热门文章

  1. vue2.0 watch 详解
  2. apue学习笔记(第九章 进程关系)
  3. UIView创建的两种方式
  4. hdu 2602 - Bone Collector(01背包)解题报告
  5. 1verilog 位拼接
  6. MVC中的 @helper
  7. c++引用返回值
  8. 【puppeteer+Node.js安装环境】之WebStorm编辑器运行失败问题:Error: Cannot find module &#39;puppeteer&#39;并且代码出不来“asnyc”标识以及有红色波浪线解决办法
  9. CSS -- 未解之疑
  10. Spring mybatis自动扫描dao