here is code but something is wrong, thats not working for some cases, when c1=4; it outputs nothing, but works for numbers greater than 9. have any ideas?
#include<iostream>
#include<vector>
using namespace std;
void insertfast(vector<int>&v, int c)
{
if (c >= v[v.size()-1])v.push_back(c);
if (c <= v[0])v.insert(v.begin(), c);
int min = 1;
int max = v.size();
while (v.size() != 9) {
int i = (min + max) / 2;
if (v[i - 1] <= c && c <= v[i])v.insert(v.begin() + i, c);
if (v[i] <= c && c <= v[i + 1])v.insert(v.begin() + (i + 1), c);
if (c < v[i])
max = i;
else
min = i;
}
}
int main()
{
vector<int>v1 = { 2,5,9,22,44,55,88,777 };
int c1 = 4;
insertfast(v1, c1);
for (int i = 0; i < 9; i++)
cout << v1[i] << endl;
}
Aucun commentaire:
Enregistrer un commentaire