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);