나는이 같은 응용 프로그램으로 쉘 정렬 알고리즘을 구현 :쉘 정렬에서 영향을받는 값에 스타일을 추가 하시겠습니까?
shell: function() {
var list = anada.vars.$list;
for (i = 0; i < list.length; i++) {
list[i] = parseInt(list[i], 10);
}
var n = list.length;
var increment = Math.floor(n/2);
var i;
while (increment > 0) {
for (i = increment; i < n; i++) {
var temp = list[i];
var j = i;
var affectedOne = j;
var affectedTwo;
while (j >= increment && list[j - increment] > temp) {
list[j] = list[j - increment];
j -= increment;
}
list[j] = temp;
var rows = '<tr>';
for (counter = 0; counter < n; counter++) {
if (counter > j - increment && counter < i + 1 && counter % increment == 0) {
rows += '<td class="affected">' + list[counter];
} else {
rows += '<td>' + list[counter];
}
}
anada.vars.$elements.push(rows);
}
increment = Math.floor(increment/2);
var row = '<tr>';
$.each(list, function(n, val) {
row += '<td class="iteration">' + val;
});
anada.vars.$elements.push(row);
}
$('.result-content').find('table').empty();
$.each(anada.vars.$elements, function(n, val) {
$('.result-content').find('table').append(val);
});
anada.vars.$elements = [];
},
문제는 다음과 같이이다 :
- 전용 '21'가 있기 때문에 강조하지 않아야 정렬 하이라이트의 첫 번째 부분, 15 및 21 항목의 위치가 변경되지 않았습니다. 목록 항목은 15,14,03424421671253420입니다.
첫번째 반복 : 인덱스 0 목록 + 1의 총 수의 절반, 그들은 위치를 변경할 것이다 인덱스 7보다 크면
는
이
페어링이고 15-21, 14-6, 0-7, 34-12, 2-5, 44-34, 내가 강조하고 싶은 6-20는 w 만입니다 호스 위치가 변경됩니다.
내 실수 것입니다.
문제에 대해 자세히 설명해 주시겠습니까? – Snippet
아, 알겠습니다. .. –