Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <list>
- #include <vector>
- #include <iostream>
- #include <iomanip>
- #include <string>
- #include <ctime>
- #include <cstdlib>
- using namespace std;
- void insert(list<short>& l, const short& value);
- void insert(vector<short>& v, const short& value);
- void insert(short arr[], int& logicalSize, const int& physicalSize, const short& value);
- int main() {
- clock_t start, end;
- srand(time(nullptr));
- const int SIZE = 50000;
- const short RANGE = 10000;
- list<short> l;
- vector<short> v;
- short* arr = new short[SIZE];
- int logicalSize = 0;
- // array
- start = clock();
- cout << "Array storage time test...";
- for (int i = 0; i < SIZE; i++) {
- try {
- insert(arr, logicalSize, SIZE, (short)(rand() % (2 * RANGE + 1) - RANGE));
- } catch (string s) {
- cout << s << endl;
- system("pause");
- exit(-1);
- }
- }
- end = clock();
- cout << "Time: " << difftime(end, start) << endl << endl;
- // list
- cout << "List storage time test...";
- start = clock();
- for (int i = 0; i < SIZE; i++) {
- insert(l, (short)(rand() % (2 * RANGE + 1) - RANGE));
- }
- end = clock();
- cout << "Time: " << difftime(end, start) << endl << endl;
- // vector
- cout << "Vector storage time test...";
- start = clock();
- for (int i = 0; i < SIZE; i++) {
- insert(v, (short)(rand() % (2 * RANGE + 1) - RANGE));
- }
- end = clock();
- cout << "Time: " << difftime(end, start) << endl << endl;
- delete[] arr;
- system("pause");
- return 0;
- }
- void insert(list<short>& l, const short& value) {
- for (auto it = l.begin(); it != l.end(); it++) {
- if (value < *it) {
- l.insert(it, value);
- return;
- }
- }
- l.push_back(value);
- }
- void insert(vector<short>& v, const short& value) {
- for (auto it = v.begin(); it != v.end(); it++) {
- if (value < *it) {
- v.insert(it, value);
- return;
- }
- }
- v.push_back(value);
- }
- void insert(short arr[], int& logicalSize, const int& physicalSize, const short& value) {
- if (logicalSize == physicalSize) throw string("No spaces in array.");
- for (int i = 0; i < logicalSize; i++) {
- if (value < arr[i]) {
- for (int j = logicalSize - 1; j >= i; j--) {
- arr[j + 1] = arr[j];
- }
- arr[i] = value;
- logicalSize++;
- return;
- }
- }
- arr[logicalSize] = value;
- logicalSize++;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement