جمعه ۲۵ مرداد ۱۳۹۲ ارسال شده توسط prodo
کد زیر این کار و انجام میده و مرتبهی زمانیش هم `O(n^2)` هست.
#include
#include
using namespace std;
int main()
{
vector ordered;
ifstream file("numbers.txt");
int x;
while(file>>x)
ordered.insert(lower_bound(ordered.begin(), ordered.end(), x), x);
return 0;
}
جمعه ۲۵ مرداد ۱۳۹۲ ویرایش شده توسط prodo
کد زیر این کار و انجام میده و مرتبهی زمانیش هم `O(n^2)` هست.
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> ordered;
ifstream file("numbers.txt");
int x;
while(file>>x)
ordered.insert(lower_bound(ordered.begin(), ordered.end(), x), x);
return 0;
}
در صورتی که بدونیم عنصر تکراری نداریم میتونیم از `set` استفاده کنیم.
#include <set>
#include <algorithm>
using namespace std;
int main()
{
set<int> ordered;
ifstream file("numbers.txt");
int x;
while(file>>x)
ordered.insert(x);
return 0;
}
اگه کد بالا رو به جای `set` با `multiset` بنویسیم مشکل تکراریها هم حل میشه
#include <set>
#include <algorithm>
using namespace std;
int main()
{
multiset<int> ordered;
ifstream file("numbers.txt");
int x;
while(file>>x)
ordered.insert(x);
return 0;
}
جمعه ۲۵ مرداد ۱۳۹۲ ویرایش شده توسط prodo
کد زیر این کار و انجام میده و مرتبهی زمانیش هم `O(n^2)` هست.
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> ordered;
ifstream file("numbers.txt");
int x;
while(file>>x)
ordered.insert(lower_bound(ordered.begin(), ordered.end(), x), x);
return 0;
}
در صورتی که بدونیم عنصر تکراری نداریم میتونیم از `set` استفاده کنیم.
#include <set>
#include <algorithm>
using namespace std;
int main()
{
set<int> ordered;
ifstream file("numbers.txt");
int x;
while(file>>x)
ordered.insert(x);
return 0;
}
اگه کد بالا رو به جای `set` با `multiset` بنویسیم مشکل تکراریها هم حل میشه
#include <set>
#include <algorithm>
using namespace std;
int main()
{
multiset<int> ordered;
ifstream file("numbers.txt");
int x;
while(file>>x)
ordered.insert(x);
return 0;
}
استفاده از `priority_queu` به صورت زیر میشه این کار و کرد.
#include <queue>
using namespace std;
int main()
{
priority_queue<int> ordered;
ifstream file("numbers.txt");
int x;
while(file>>x)
ordered.push(x);
return 0;
}