0
我遇到了问题,需要您的指导。基本上我设法创建了这个Bubble Sort方法。我该如何修改这个空隙排序,而不是每次通过列表比较相邻元素,比较一些数字(i)的位置相隔的元素,其中(i)是小于n的整数。例如,第一个元素将与第(i + 1)个元素,第(i + 2)个元素的第2个元素,(ni)元素的第n个元素等进行比较。当所有元素已经进行了比较。在接下来的迭代,我之前是一些大于1的减少和过程继续进行,直到i小于1气泡排序到间隙排序修改
public static void bubbleSort (Comparable[] data, int maxlength){
int position, scan;
Comparable temp;
for (position = maxlength; position >= 1; position--){
for (scan = 0; scan <= position – 1; scan++){
if (data[scan].compareTo(data[scan+1]) > 0){
// Swap the values
temp = data[scan];
data[scan] = data[scan + 1];
data[scan + 1] = temp;
}
}
}
}
您是否在寻找GapSort实现?看看这个链接的第二篇文章:http://www.daniweb.com/software-development/java/threads/238791/gap-sort – Fido 2012-04-03 07:18:51
thnx。但你能解释一下吗? “双SF = 1.3;”为什么这很有用? – serge 2012-04-03 07:28:46
这个想法是从一个很大的差距开始,并缩小每个循环。 SF就像是一个“收缩系数”(我在文章中假设的意思是“收缩因子”),在这种情况下大约为76%(这意味着在每次迭代中差距减少到76%值)。 – Fido 2012-04-03 07:33:53