哪些排序算法(堆排序、快速排序和归并排序)可以处理连续的数据流?我希望有一个随时都能排序的列表,使得新的值能够立即进入正确的位置。我似乎找不到关于如何始终保持一个已排序的列表以及具有连续数据流的具体细节。
class StreamSorter<A extends Comparable <A>> {
// A[] sorted_list;
// other fields and initialiser: TODO
public void add_new_element(A x) {
// add new element to the data received so far and create a sorted list.
}
}
如何实现这个类,以便每次调用add_new_element时,排序后的列表都包含迄今为止所有已排序的元素?
如果这是一个愚蠢的问题,我很抱歉,相信我,我已经尽力了。
干杯
List
子类,覆盖add()
/insert()
方法,并在每次调用后重新对自身进行排序。 - Craig OtisaddNewElement
,更好的选择是只用add
。 - mike