1
我實現希爾排序算法這樣的應用程序:在shell排序中爲受影響的值添加樣式?
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,0,34,2,44,21,6,7,12,5,34,20。
如果索引0大於索引7,其是半列表+ 1的總數量的,他們會改變位置,更大
這是配對:
第一次迭代: 15-21,14-6 , 0-7, 34-12, 2-5, 44-34, 6-20
我想強調什麼是那些只W¯¯軟管位置發生變化。
什麼是我的錯誤。
你能解釋一下這個問題嗎? – Snippet 2013-03-08 06:43:13
啊,好的謝謝.. – 2013-03-08 16:16:34