js的排序
我们这里只介绍一下冒泡排序法:[其它方法可以参考 php 的排序章节]
代码:
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<script type="text/javascript">
var arr=[0,-1,90,-18,900,90,78];
var temp=0;
for(var i=0;i<arr.length-1;i++)
{
//定小循环
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
//交换
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
//输出数组
document.write(arr);
</script>
</html>
js的查找
顺序查找
一个一个的比较,如果是则查找到.
var arr=[3,5,90,12,-23];
var findVal=90;
var flag=false;
for(var i=0;i<arr.length;i++){
if(arr[i]= = findVal){
document.write(”找到了这个数 下标是”+i);
flag=true;
}
}
if(!flag){
document.write(”一个都没有找到”);
}
二分查找
面试题: 一定掌握!
//二分查找[递归]
//二分查找要保证我们的数组是一个有序的.
//思想是
//首先把数组的中间这个数找出,然后和你要查询的数比较
//① 你要查询的数比中间的数大. 则说明我们应当该数组的右边[后边]查询
//② 你要查询的数比中间的数小 .则说明我们应当该数组的左边[前边]查询
//③ 你要查询的数等于中间的数, 说明找到
var arr=[1,90,100,123,4000];
function binarySearch(findVal,arr,leftIndex,rightIndex){
//退出条件
if(rightIndex<leftIndex){
document.write("查询没有结果");
return;
}
//代码:
//找到中间数的下标
var midIndex=Math.round((leftIndex+rightIndex)/2);
if(arr[midIndex]<findVal){
binarySearch(findVal,arr,midIndex+1,rightIndex);
}else if(arr[midIndex]>findVal){
binarySearch(findVal,arr,leftIndex,midIndex-1);
}else{
document.write("找到 下标是"+midIndex);
//binarySearch(findVal,arr,leftIndex,midIndex-1);
}
}
//调用的格式
binarySearch(100,arr,0,arr.length-1);