Сортировка расчёской не работает

Вот код сортировки:

function sort(arr,num=1.25,fn){
        if(!fn){
            fn=function(x){
                return x;
            }
        }
        let l = arr.length;
        let factor = num;
        let hFactor = l/factor;
        let h=0;
        let i=0;
        while(hFactor > 1){
            h = Math.round(hFactor);
            i=0;
            j=h;
            while(j<l){
                if(fn(arr[i]) > fn(arr[j])){
                    [arr[i],arr[j]] = [arr[j],arr[i]];
                }
                i++;
                j++;
            }
            hFactor/=factor;
        }
        return arr;
    }
  var arr=[];
    let i=0;
    while(i<1000){
        arr.push(Math.random());
        i++;
    }
    sort(arr,1.36);
    i=0;
    while(i<arr.length-1){
        if(arr[i+1]-arr[i]<0){
            console.log('!');
        }
        i++;
    }
В сортировке при некоторых значениях num появляются ошибки.


Ответы (0 шт):