一个几乎有序的数列代表一个数字排列好之后的位置距离它原先的位置最多只差k,那么方法就是采用小根堆,从数列开始连续取k+1个数形成小根堆,再从其中取出最小值,放在序列第一个,再插入第k+2个数,重新形成小根堆后再取最小值放在第二个。依次循环下去,直至排序完成。
一个几乎有序的数列代表一个数字排列好之后的位置距离它原先的位置最多只差k,那么方法就是采用小根堆,从数列开始连续取k+1个数形成小根堆,再从其中取出最小值,放在序列第一个,再插入第k+2个数,重新形成小根堆后再取最小值放在第二个。依次循环下去,直至排序完成。