javascript(6)
2024-09-15 12:14:43
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)
最新文章
- HMM 自学教程(八)总结
- jmeter学习预热
- SQL Server中行列转换
- PYTHON代码摘录
- tp数据表字段缓存
- java使用poi创建excel文件
- hdu_4497GCD and LCM(合数分解)
- spring mvc 扩展 标签解析
- 【.NET Core项目实战-统一认证平台】第四章 网关篇-数据库存储配置(2)
- Oracle 表锁与解锁
- 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
- python 管道、数据共享、进程池
- echarts 中国地图实现 省、市、区县三级联动,省级下钻、市级下钻
- 大道至简第一章Java伪代码
- 03_java基础(三)之第一个程序与开发工具的安装
- CentOS修改yum源为阿里云
- bzoj 4036 集合幂级数
- 工业通信的开源项目 HslCommunication 介绍
- BZOJ4416 [Shoi2013]阶乘字符串 【序列自动机 + 状压dp】
- 模块型css样式
热门文章
- vue2.0 watch 详解
- apue学习笔记(第九章 进程关系)
- UIView创建的两种方式
- hdu 2602 - Bone Collector(01背包)解题报告
- 1verilog 位拼接
- MVC中的 @helper
- c++引用返回值
- 【puppeteer+Node.js安装环境】之WebStorm编辑器运行失败问题:Error: Cannot find module &#39;puppeteer&#39;并且代码出不来“asnyc”标识以及有红色波浪线解决办法
- CSS -- 未解之疑
- Spring mybatis自动扫描dao