All pastes #488226 Raw Edit

dark_light

public cpp v1 · immutable
·published 2007-05-14 21:53 UTC
rendered paste body
// teste de performance de um mergesort "simples"// autor: elias amaral// funciona: não, ahahh (...)#include <iostream>#include <cstring>#include <ctime>#include <vector>using namespace std;template <class T>vector<T> merge(vector<T> v, vector<T> u){	vector<T> res(u.size()+v.size());	unsigned int i = 0, j = 0;	while (i < v.size() && j < u.size())		if (v[i] < u[i])			res[i+j] = v[i++];		else			res[i+j] = u[j++];	while (i < v.size())		res[i+j] = v[i++];	while (j < u.size())		res[i+j] = u[j++];	return res;}template <class T>vector<T> mergesort(vector<T> v){	unsigned int s = v.size();	if (s <= 1) {		return v;	} else {		vector<T> a(v.begin(), v.begin() + s/2),			b(v.begin() + s/2, v.end());		return merge(mergesort(a), mergesort(b));	}}int main(int argc, char* argv[]){	vector<int> res, v;	int r;	while (cin >> r)		v.push_back(r);	//variacao (tb nao funciona):	/*	clock_t t0 = clock();	res = mergesort(v);	clock_t t1 = clock();	*/	time_t t0 = time(NULL);	res = mergesort(v);	time_t t1 = time(NULL);	if (argc <= 1 || (strcmp(argv[1], "-q") )) {		for (unsigned int i = 0; i < res.size(); i++)			cout << res[i] << " ";		cout << endl;	}	//problema aqui: sempre imprime 0 (pq t0 == t1)	cout << t0 << ", " << t1 << endl;}