【发布时间】:2014-07-09 15:47:29
【问题描述】:
// gives next index in array which wraps around in a ring; moves clockwise through indices
private int nextSlot(int k) {
return ((k + 1) % A.length);
}
// Insert method
public void insert(int k) {
if( size == A.length)
resize();
A[next] = k;
for(int i = 0; i < next; i = nextSlot(i)) {
if(k < A[i]) {
for( int j = next - 1; j >= i; j--){
A[nextSlot(j)] = A[j];
}
A[i] = k;
break;
}
}
next = nextSlot(next);
size++;
}
我正在尝试创建一个插入/排序方法,以升序将值插入循环优先级队列。我遇到的问题是当下一个指针循环回到数组的开头时,队列前面的项目没有被排序。我已经为此苦苦挣扎了几个小时,任何帮助将不胜感激。
【问题讨论】:
标签: java algorithm queue priority-queue circular-buffer