array容器测试
#include <iostream>
#include <algorithm>
#include <array>
#include <ctime>
#include <cstdlib>
namespace jj01{
int compareLong(const void* a, const void* b)
{
return *(long*)a - *(long*)b;
}
void test_array(){
const int ASIZE = 500000;
int target = 2000;
std::cout << "test array ......\n";
std::array<long,ASIZE> c;
clock_t timeStart=clock();
for(auto &e:c) { e=rand(); }
std::cout << "milli-seconds:" << clock()-timeStart << '\n';
std::cout << "array.size():" << c.size() << '\n';
timeStart=clock();
qsort(c.data(),ASIZE,sizeof(long),compareLong);
std::cout << "bsearch: " << bsearch(&target,c.data(),sizeof(long),ASIZE,compareLong) << " milli-seconds:" << clock()-timeStart << '\n';
}
}
int main()
{
jj01::test_array();
return 0;
}
array数组在内存中是连续的,可以看出拷贝50万个长整型数据需要15086ms,二分搜索基本不花费时间,排序花费时间83500ms。