/* function seqSearch(arr, data) {//等价于:arr.indexOf(data),内置indexOf()方法效率较高
for ( var i = 0; i < arr.length; ++i) {
if (arr[i] == data) {
return i;
}
}
return -1;
} */
/* function findMin(arr) {//easy
var min = arr[0];
for ( var i = 1; i < arr.length; ++i) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
function findMax(arr) {//easy
var max = arr[0];
for ( var i = 1; i < arr.length; ++i) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
} */
function swap(arr, index, index1) {
temp = arr[index];
arr[index] = arr[index1];
arr[index1] = temp;
}
function seqSearch(arr, data) {
for ( var i = 0; i < arr.length; ++i) {
if (arr[i] == data) {
if (i > 0) {
swap(arr, i, i - 1);//1.自组织数据,优化效果
}
return true;
}
}
return false;
}
var numbers = [ 5, 1, 7, 4, 2, 10, 9, 3, 6, 8 ];
for ( var i = 1; i <= 3; i++) {
seqSearch(numbers, 4);
document.write(numbers + "<br />");
}
function seqSearch1(arr, data) {//2.使用自组织数据,优化查找
for ( var i = 0; i < arr.length; ++i) {
if (arr[i] == data && i > (arr.length * 0.2)) {
//使用“ 80-20 原则” 的概率分布——帕累托( Pareto) 分布
swap(arr, i, 0);
return true;
} else if (arr[i] == data) {
return true;
}
}
return false;
}
for ( var i = 1; i <= 3; i++) {
seqSearch(numbers, 4);
document.write(numbers + "<br />");
}