js冒泡排序与二分法查找
冒泡排序
var attr=[1,5,7,6,3,9,2,8,4];
var zj=0;
//控制比较轮数
for(var i=0;i<attr.length-1;i++)
{
//控制每轮的比较次数
for(var l=0;l<attr.length-1-i;l++)
{
// 与下一个比较
if(attr[l]<attr[l+1])
{
//互换
zj=attr[l];
attr[l]=attr[l+1];
attr[l+1]=zj;
}
}
}
alert(attr[0])
二分法查找
//必须先排好序
var attr=[1,2,3,4,5,6,7,8,9];
//要找的值
var v=6;
//取最大索引与最小索引的平均值与查询值比较,排除掉索引大的或索引小的,然后在剩下的索引里面再次判断,直到找到一致的。
var min=0;
var max=attr.length-1;
var zj;
while(true)
{
//计算中间索引
zj=parseInt((min+max)/2);
//比较中间值与传入值
if(attr[zj]==v)
{
break;
}
if(zj==min)
{
if(attr[zj+1]==v)
{
zj=zj+1;
break;
}
else
{
zj-1;
break;
}
}
if(attr[zj]>v)
{
max=zj;
}
{
min=zj;
}
}
alert(zj);
js冒泡排序与二分法查找的更多相关文章
- Java冒泡排序与二分法查找的代码随笔
package javafirst; import java.util.Arrays; class MaoPao{ //升序排列 /** * @param arr 要排序的数组 * @return i ...
- js冒泡排序和二分查找
冒泡排序: var arr=[5,0,-56,900,12,9000,-123,-1000]; var flag=false; for(var i=0;i<arr.length-1;i++){ ...
- js 排序:sort()方法、冒泡排序、二分法排序。
js中的排序,这里介绍三种,sort()方法.冒泡排序.二分法排序. 1.sort方法 写法: 数组.sort(); 返回排好序的数组,如果数组里是数字,则由小到大,如果是字符串,就按照第一个字符的 ...
- 【Python学习笔记】-冒泡排序、插入排序、二分法查找
原文出处:https://blog.csdn.net/yort2016/article/details/68065728 冒泡排序 主要是拿一个数与列表中所有的数进行比对,若比此数大(或者小),就交换 ...
- 二分法查找 js 算法
二分法查找算法:采用二分法查找时,数据需是排好序的.主要思想是:(设查找的数组区间为array[s, e])(1)确定该区间的中间位置m(2)将查找的值T与array[m]比较,若相等,查找成功返回此 ...
- JavaScript用二分法查找数据等
//二分法查数据 var arr=[41,43,45,53,44,95,23]; var b=44; var min=0; var max=arr.length; for(var i=1;i<a ...
- C/JS_二分法查找
1. 二分法查找 前提: 数据是排好序的. 题设:给出一个有序arr,从中找出key,arr的区间是array[ low , higt]. 步骤: (1)mid=(low+high)/2 (2)arr ...
- php排序算法及二分法查找
插入排序 思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表.即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止. 要点:设立 ...
- iOS 排序算法总结、二分法查找
1.插入排序 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的.如此反复循环,直到全部排好顺序. 直接插 ...
随机推荐
- UOJ25——IOI2014Wall
1.题目大意:这道题也是线段树修改,有两种修改,一个区间中大于h都变成h,一个区间中小于h都变成h,单点询问 主要是这几种操作 2.分析:这道题是双标记,还是父亲的优先级比儿子低,自己用手推推就可以知 ...
- 贴一下WC总结里提到的那道裸题吧。。。
[bzoj4034][HAOI2015]T2 试题描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 ...
- 剑指Offer 合并两个排序的链表
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 思路: 用2个新节点,一个用来存放新链表的头节点,另一个用来移动.当p1,p2有一个到尾部的 ...
- TP中手动加载类库
加载第三方类库,包括不符合命名规范和后缀的类库,以及没有使用 命名空间或者空间和路径不一致的类库.可手动加载. // 导入Org类库包 Library/Org/Util/Date.class.php类 ...
- busybox microcom
/************************************************************************* * busybox microcom * 说明: ...
- java写文件
randomAccessFile.close(); } e.printStack ...
- ubuntu安装LAMP环境
1. LAMP 的安装 sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql 由于LAMP大部分 ...
- linux——基本配置
环境:Ubuntu 12.04.2 LTS (GNU/Linux 3.5.0-23-generic i686) 网络配置 #临时改变 #修改IP和子网掩码 sudo ifconfig eth0 192 ...
- Max Subsequence
一个sequence,里面都是整数,求最长的subsequence的长度,使得这个subsquence的最大值和最小值相差不超过1. 比如[1,3,2,2,5,2,3,7]最长的subsequence ...
- 一个静态的HTML页面用jquery ajax登录到sharepoint页面
$.ajax({ type: "get", url: "http://", d ...