需1求:给出N长的序列,求出TopK大的元素,使用小顶堆,heapq模块实现。
import heapq
import random
class TopkHeap(object):
def __init__(self, k):
self.k = k
self.data = []
def Push(self, elem):
if len(self.data) < self.k:[......]
需1求:给出N长的序列,求出TopK大的元素,使用小顶堆,heapq模块实现。
import heapq
import random
class TopkHeap(object):
def __init__(self, k):
self.k = k
self.data = []
def Push(self, elem):
if len(self.data) < self.k:[......]
堆分配前天的普通串比有如下优点:
(1)节省空间,用多少,分配多少!
(2)struct结构体体积小,减少了位对齐的机会,提高了效率
缺点:
(1)用了new所以记得delete
(2)结构上字符串从0开始,这个下标是很折磨人的
HString.h
#include <iostream>
enum {OK=0,WRONG=-1};
typedef int Status;
struct HString
{
char *chars;
int len;
}[......]