Сортировка вставки функций JavaScript / функция не определена - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь написать файл javascript, в котором есть функция сортировки вставкой, функция проверки отсортированного массива и возврата true или false, а также функция сортировки вставки, которая работает с конца индекса массива до начала.Вот мой кодя определяю это выше, я не понимаю, как это.

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

Вы должны вернуть arr из функции.Он ничего не возвращает, поэтому вы получаете неопределенный

function insertionSort(arr) { 
    for(var i = 1; i < arr.length; i++) { 
        var val = arr[i]; var j; for(j = i; j > 0 && arr[j-1] > val; j--) {
            arr[j] = arr[j-1]; } arr[j] = val; }
   return arr; }
function reverseInsertionSort(arr) { 
    for(var i = arr.length; i >1; i--) 
    { var val = arr[i]; var j;
        for(j = i; j > 0 && arr[j-1] > val; j--)
            { arr[j] = arr[j-1]; } arr[j] = val;
            } return arr}
var length = Math.floor(Math.random()*100)+1;
var arr = new Array();
for(let i = 0; i < length; i++) {
  arr.push(Math.floor(Math.random()*10000)+1);
}
console.log(arr);



var sortedArr = insertionSort(arr);
console.log(sortedArr);
console.log("And with reverse \n");
var reverseSortedArr = reverseInsertionSort(arr);
console.log(reverseSortedArr);
//console.log(sortCheck(sortedArr));
0 голосов
/ 07 февраля 2019

Убедитесь, что вы возвращаете массив из функции (й).Поскольку в настоящее время это не так, назначение функции переменной не приведет к какому-либо конкретному значению.

function insertionSort(arr) { 
    for(var i = 1; i < arr.length; i++) { 
        var val = arr[i]; 
        var j; 
        for(j = i; j > 0 && arr[j-1] > val; j--) {
            arr[j] = arr[j-1]; 
        } 
        arr[j] = val; 
     } 
    return arr
}

0 голосов
/ 07 февраля 2019

Ваша функция inserttionSort не возвращает значение, она изменяет массив, переданный в качестве аргумента.Вместо var sortedArr = insertionSort(arr) просто позвоните insertionSort(arr) и затем наберите console.log(arr).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...