function generalSearch(arr,data){//普通的顺序查找,就是遍历一遍看是否找到
for(var i=0;i<arr.length;i++){
if(arr[i]==data){
return true;
}
}
return false;
}
function betterSearch(arr,data){//自组织查找,将查找率高的依次往前移
for(var i=0;i<arr.length;i++){
if(arr[i]==data){
if(i>0){
swap(arr,i,i-1);//如果找到则将查找的值和前一个值交换位置
}
return true;
}
}
return false;
}
function swap(arr,i,j){//交换位置
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
function bestSearch(arr,data){//更好的自组织查找,将排名后80%的查找结果调到第一位
for(var i=0;i<arr.length;i++){
if(arr[i]==data&&i>(arr.length*0.2)){//如果是后80%
swap(arr,i,0);
return true;
}else if(arr[i]==data){
return true;//前20%就不移动了
}
}
return false;
}
//进行试验
var nums=[3,1,4,6,2,9,8,0,5,7];
//普通查找
var bool=generalSearch(nums,3);
document.write(bool+'<br>');//true
var bool=generalSearch(nums,11);
document.write(bool+'<br>');//false
//自组织查找
showNums(nums);//3 1 4 6 2 9 8 0 5 7
betterSearch(nums,2);
showNums(nums);//3 1 4 2 6 9 8 0 5 7
betterSearch(nums,2);
showNums(nums);//3 1 2 4 6 9 8 0 5 7
betterSearch(nums,2);
showNums(nums);//3 2 1 4 6 9 8 0 5 7
//更好的自组织查找
document.write("更好的自组织查找<br>");
bestSearch(nums,5);
showNums(nums);//5 2 1 4 6 9 8 0 3 7
bestSearch(nums,2);
showNums(nums);//5 2 1 4 6 9 8 0 3 7
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
function generalSearch(arr,data){//普通的顺序查找,就是遍历一遍看是否找到
for(var i=0;i<arr.length;i++){
if(arr[i]==data){
return true;
}
}
return false;
}
function betterSearch(arr,data){//自组织查找,将查找率高的依次往前移
for(var i=0;i<arr.length;i++){
if(arr[i]==data){
if(i>0){
swap(arr,i,i-1);//如果找到则将查找的值和前一个值交换位置
}
return true;
}
}
return false;
}
function swap(arr,i,j){//交换位置
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
function bestSearch(arr,data){//更好的自组织查找,将排名后80%的查找结果调到第一位
for(var i=0;i<arr.length;i++){
if(arr[i]==data&&i>(arr.length*0.2)){//如果是后80%
swap(arr,i,0);
return true;
}else if(arr[i]==data){
return true;//前20%就不移动了
}
}
return false;
}
function showNums(arr){
for(var i=0;i<arr.length;i++){
document.write(arr[i]+' ');
}
document.write("<br>");
}
//进行试验
var nums=[3,1,4,6,2,9,8,0,5,7];
//普通查找
var bool=generalSearch(nums,3);
document.write(bool+'<br>');//true
var bool=generalSearch(nums,11);
document.write(bool+'<br>');//false
//自组织查找
showNums(nums);//3 1 4 6 2 9 8 0 5 7
betterSearch(nums,2);
showNums(nums);//3 1 4 2 6 9 8 0 5 7
betterSearch(nums,2);
showNums(nums);//3 1 2 4 6 9 8 0 5 7
betterSearch(nums,2);
showNums(nums);//3 2 1 4 6 9 8 0 5 7
//更好的自组织查找
document.write("更好的自组织查找<br>");
bestSearch(nums,5);
showNums(nums);//5 2 1 4 6 9 8 0 3 7
bestSearch(nums,2);
showNums(nums);//5 2 1 4 6 9 8 0 3 7
</script>
</body>
</html>
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有