LINUX.ORG.RU

История изменений

Исправление wota, (текущая версия) :

я ваши фшарпы не знаю, но логично мерять максимальное время на поиск, т.е. когда списки почти наверняка разные, а совпадает к примеру последний элемент (и то для теста):

~$ cat 1.cpp
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <unordered_set>
#include <vector>
using namespace std;

int main() {
	srand( time( 0 ) );
	unordered_set<int> us;

  	vector<int> v1( 10000 ), v2( 10000 );
	generate( v1.begin(), v1.end(), rand );
	generate( v2.begin(), v2.end(), rand );

	v1.push_back( 9999 );
	v2.push_back( 9999 );

	for( int n : v1 )
		us.emplace( n );

	for( int n : v2 ) {
		if( us.find( n ) != us.end() ) {
			printf( "Yes: %d\n", n );
			return 0;
		}
	}

	printf( "No\n" );
}

~$ g++ -Ofast -std=c++11 1.cpp
~$ time ./a.out 
Yes: 9999

real	0m0.005s
user	0m0.004s
sys	0m0.004s

и если время выше таки в секундах - то ваш fsharp нереально тормозной

Исходная версия wota, :

я ваши фшарпы не знаю, но логично мерять максимальное время на поиск, т.е. когда списки почти наверняка разные:

~$ cat 1.cpp
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <unordered_set>
#include <vector>
using namespace std;

int main() {
	srand( time( 0 ) );
	unordered_set<int> us;

  	vector<int> v1( 10000 ), v2( 10000 );
	generate( v1.begin(), v1.end(), rand );
	generate( v2.begin(), v2.end(), rand );

	for( int n : v1 )
		us.emplace( n );

	for( int n : v2 ) {
		if( us.find( n ) != us.end() ) {
			printf( "Yes: %d\n", n );
			return 0;
		}
	}

	printf( "No\n" );
}

~$ g++ -Ofast -std=c++11 1.cpp
~$ time ./a.out 
No

real	0m0.005s
user	0m0.004s
sys	0m0.000s

и если время выше таки в секундах - то ваш fsharp нереально тормозной