Сообщение от рони
			 
		
	 | 
	
		Papazol, 
   
function freqPairs(b) {
    for (var c = {}, a = 0; a < b.length; a++) {
        var d = b[a];
        c[d] ? c[d]++ : c[d] = 1
    }
    b.sort(function (a, b) {
        return c[b] - c[a] || b[0] - a[0] || b[1] - a[1]
    });
    for (a = 0; a < b.length; a++) b[a][2] = c[b[a]];
    return b
};
alert(freqPairs( source ).join('\n'));
	 | 
	
Спасибо за код!
Код рабочий - в смысле, что он выполняется и ничего не ломается. 
Правда он все равно не отсортировал, как надо, но его наверняка можно доточить.
На самом деле я зарешал проблему самостоятельно. Применил другой алгоритм - шейкерную сортировку. Это конечно просто улучшение того же "пузырька", но мне вдруг помогло.
То, что проблему решил - это хорошо...
А вот то, что так и не понял, шоэтобыло - это плохо...