Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <ctime>
- #include <random>
- #include <fstream>
- #include <vector>
- using namespace std;
- int* bubble(int* massiv, int size)
- {
- for (int i = 0; i < size; i++)
- for (int j = size - 1; j > i; j--)
- if (massiv[j] < massiv[j - 1])
- swap(massiv[j], massiv[j - 1]);
- return massiv;
- }
- int* shekerSort(int* massiv, int size)
- {
- int left = 0, right = size - 1;
- int flag = 1;
- while ((left < right) && flag > 0)
- {
- flag = 0;
- for (int i = left; i < right; i++)
- if (massiv[i] > massiv[i + 1])
- {
- swap(massiv[i], massiv[i + 1]);
- flag = 1;
- }
- right--;
- for (int i = right; i > left; i--)
- if (massiv[i - 1] > massiv[i])
- {
- swap(massiv[i - 1], massiv[i]);
- flag = 1;
- }
- left++;
- }
- return massiv;
- }
- int main()
- {
- srand(time(NULL));
- int option = 0;
- while (option < 1 || option > 3)
- {
- cout << "1.Manual input" << endl;
- cout << "2.Random" << endl;
- cout << "3.File" << endl;
- cin >> option;
- switch (option)
- {
- case 1:
- {
- int size, method;
- cout << "Enter size: ";
- cin >> size;
- int *massiv = new int[size];
- cout << "Enter value: " << endl;
- for (int i = 0; i < size; i++)
- {
- cout << "[" << i << "]= ";
- cin >> massiv[i];
- }
- cout << "\nBubble(1) or Shaker(2): ";
- cin >> method;
- if (method == 1)
- bubble(massiv, size);
- else if (method == 2)
- bubble(massiv, size);
- else
- cout << "Enter 1 or 2" << endl;
- cout << "\nSorting massiv: " << endl;
- for (int i = 0; i < size; i++)
- cout << massiv[i] << " ";
- cout << endl;
- break;
- }
- case 2:
- {
- int size, method;
- cout << "Enter size: ";
- cin >> size;
- int *massiv = new int[size];
- cout << "Massiv: " << endl;
- for (int i = 0; i < size; i++)
- {
- massiv[i] = rand() % 100;
- cout << massiv[i] << " ";
- }
- cout << "\nBubble(1) or Shaker(2): ";
- cin >> method;
- if (method == 1)
- bubble(massiv, size);
- else if (method == 2)
- bubble(massiv, size);
- else
- cout << "Enter 1 or 2" << endl;
- cout << "\nSorting massiv: " << endl;
- for (int i = 0; i < size; i++)
- cout << massiv[i] << " ";
- cout << endl;
- break;
- }
- case 3:
- {
- int size, method;
- ifstream myfile("file.txt");
- vector<int> vec;
- cout << "Massiv: " << endl;
- int id = 0;
- int buf;
- while (myfile >> buf)
- {
- vec.push_back(buf);
- cout << vec[id] << " ";
- id++;
- }
- size = vec.size();
- int* massiv = &vec[0];
- cout << "\nBubble(1) or Shaker(2): ";
- cin >> method;
- if (method == 1)
- bubble(massiv, size);
- else if (method == 2)
- bubble(massiv, size);
- else
- cout << "Enter 1 or 2" << endl;
- ofstream output("file_out.txt");
- cout << "\nSorting massiv: " << endl;
- for (int i = 0; i < size; i++)
- cout << massiv[i] << " ";
- cout << endl;
- for (int i = 0; i < size; i++)
- output << massiv[i] << " ";
- break;
- }
- default: cout << "Enter 1-3" << endl; break;
- }
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment