Я написал Javascript-файл из двух алгоритмов. Как показано в приведенном ниже коде, я использую for loop
для генерации случайных значений, которые используются обоими алгоритмами в качестве входных данных.Как отобразить вывод одной функции за другой
В настоящее время я показываю вывод binarySearch
и SearchSorted
в качестве альтернативы.
Проблемы я столкнулся, я должен пройти же массив значений порожденных randomlyGenerateArray
в основной программе к обеим алгоритмам для содержательного сравнения. Но я не знаю, как изменить выходной формат.
Я думал о добавлении их в разные циклы, но, как я объяснил выше, мне нужно использовать те же значения randomArray
для обоих алгоритмов.
т.е. ниже код выдает выходной сигнал, как показано ниже -
Binary Search Successful 1 Search Sorted Successful 5 Binary Search Successful 3 Search Sorted Successful 10
Как отобразить вывод бинарного поиска, а затем отобразить выход поиска Сортировка? это что-то вроде этого. Любая помощь будет оценена.
Binary Search Successful 1 Binary Search Successful 3 Search Sorted Successful 5 Search Sorted Successful 10
// Binary Search Algorithm
function binarySearch(A,K)
{
var l = 0; // min
var r = A.length - 1; //max
var n = A.length;
var operations = 0;
while(l <= r)
{
var m = Math.floor((l + r)/2);
operations++;
if(K == A[m])
{
console.log('Binary Search Successful %d',operations);
return m;
}
else if(K < A[m])
{
r = m - 1;
}
else
{
l = m + 1;
}
}
operations++;
console.log('Binary Search Unsuccessful %d',operations);
return -1;
}
// Search Sorted Algorithm
function searchSorted(A, K)
{
var n = A.length;
var i = 0;
var operations = 0;
while (i < n)
{
operations++;
if (K < A[i])
{
return -1;
}
else if (K == A[i])
{
console.log('Search Sorted Successful %d', operations);
return i;
}
else
{
i = i + 1;
}
}
operations++;
console.log('Search Sorted Unsuccessful %d', operations);
return -1;
}
// Random Array generator
var randomlyGenerateArray = function(size)
{
var array = [];
for (var i = 0; i < size; i++)
{
var temp = Math.floor(Math.random() * maxArrayValue);
var final = array.splice(5, 0, 30);
array.push(final);
}
return array;
}
//Sort the Array
var sortNumber = function(a, b)
{
return a - b;
}
// Main Program
var program = function()
{
var incrementSize = largestArray/numberOfArrays;
for (var i = smallestArray; i <= largestArray; i += incrementSize)
{
var randomArray = randomlyGenerateArray(i);
var sort = randomArray.sort(sortNumber);
var randomKey = 30;
binarySearch(sort, randomKey);
searchSorted(sort, randomKey);
}
}
var smallestArray = 10;
var largestArray = 10000;
var numberOfArrays = 1000;
var minArrayValue = 1;
var maxArrayValue = 1000;
program();
Отдельных двоичным и сортирует поиск в 2 петли. Кроме того, просто уточните, вы должны генерировать новый массив на каждом шаге? – Zero
Мне нужно использовать один и тот же 'randomArray' как вход для обоих алгоритмов. Если я их отделяю, мне придется снова вызвать «randomlyGenerateArray» для другого цикла, который тогда не будет иметь те же значения массива, что и другие. – Dazzler