#include "nskiplist.h"
#include "nsortedlist.h"
#include "nstring.h"
#include "noutput.h"
#include <ctime>
void showTime(time_t start, time_t end, int size) {
time_t length;
length = end - start;
NMessage::print() << size << " items added in " <<
static_cast<nuint32>(length) << " seconds. ";
if (length > 0) {
NMessage::print() << "With an average of " <<
static_cast<double>(size / length) << " items p/ sec.";
}
}
void addList(int size, int *data) {
NString tmp;
NSortedList<NString> list;
time_t start;
time_t end;
start = time(NULL);
for (int i = 0; i < size; i++) {
tmp = tmp.number(i);
list.insert(tmp);
data++;
}
end = time(NULL);
showTime(start, end, size);
}
void addSkipList(int size, int *data) {
NString tmp;
time_t start;
time_t end;
NSkipList<NString> slist(16);
start = time(NULL);
for (int i = 0; i < size; i++) {
tmp = tmp.number(*data);
slist.insert(tmp);
data++;
}
end = time(NULL);
showTime(start, end, size);
}
int main(void) {
int size = 2501;
int *data = new int[size];
for (int i = 0; i < size; i++) {
*data = rand();
data++;
}
for (int i = size; i != 0; i--, data--) {}
NMessage::print() << "Adding " << size << " items to a SkipList";
addSkipList(size, data);
NMessage::print() << "Adding " << size << " items to a List";
addList(size, data);
NMessage::print() << "Done.";
}