Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include <string>
- #include <ctime>
- using namespace std;
- /* Function: Array's elements - Заполнение массива */
- void array_elements(int *a, int length) {
- cout << "Enter elements of array:\n";
- for (int i=0; i < length; i++)
- {
- cin >> a[i];
- }
- }
- /* Function: Show sorted elements - Выдача обработанных элементов */
- void array_out(int *a, int length) {
- for (int i=0; i < length; i++)
- {
- cout << a[i] << " ";
- }
- cout << endl;
- }
- /* Function: Bubble sort - Сортировка элементов массива методом "пузырька" */
- void bubble_sort(int *a, int length) {
- for (int i = 0; i < length-1; i++) {
- for (int j = 0; j < (length-i)-1; j++) {
- if (a[j] > a[j+1]) {
- swap(a[j], a[j+1]);
- }
- }
- }
- }
- /* Function: Paste sort - Сортировка элементов массива методом "вставки" */
- void paste_sort(int *a, int length) {
- for(int i = 1; i < length; i++)
- for(int j=i; j>0 && a[j-1] > a[j]; j--)
- swap(a[j-1],a[j]);
- }
- /* Function: Individual task - Замена элементов массива, кратных 11 на их среднее значение*/
- void ind(int *a, int length) {
- int avg, sum = 0;
- for (int i = 0; i < length-1; i++) {
- for (int j = 0; j < length; j++) {
- sum += a[j];
- }
- avg = sum/length;
- for (int j = 0; j < length; j++) {
- if (a[j] % 11 == 0)
- {
- a[j] = avg;
- }
- }
- }
- }
- /* Function: Sorting - Функция выбора метода сортировки/обработки */
- void sort_proc (int *a, int length) {
- int select;
- cout << "Select the methode of sorting: (1 - Bubble; 2 - Paste; 3 - Ind. task)\n"; // Сообщение-подсказка
- do {
- cin >> select;
- switch(select)
- {
- case 1: // Сортировка методом пузырька
- bubble_sort(a, length); // Функция обработки массива
- cout << "[Bubble] Sorted array:\n";
- array_out(a, length); // Функция выдачи обработанных элементов
- break;
- case 2: // Сортировка методом вставки
- paste_sort(a, length); // Функция обработки массива
- cout << "[Paste] Sorted array:\n";
- array_out(a, length); // Функция выдачи обработанных элементов
- break;
- case 3: // Индивидуальное задание
- ind(a, length); // Функция обработки массива
- cout << "[Individual] Sorted array:\n";
- array_out(a, length); // Функция выдачи обработанных элементов
- break;
- default: // В случае, если было введено некорректное значение
- cout << "Select correct value (1 - Bubble, 2 - Paste, 3 - Ind. task)\n";
- }
- } while(select <=3 || select < 1); // Условие выполнения
- }
- /* Program body - Тело программы */
- int main() {
- int i, length;
- int select;
- cout << "Enter array's size:\n";
- cin >> length; // Размерность массива
- int *a = new int[length];
- array_elements(a, length); // Вызов функции: ввод элементов массива
- sort_proc(a, length); // Вызов функции: сортировка элементов массива
- /* End program body - Конец тела программы */
- delete [] a;
- }
Advertisement
Add Comment
Please, Sign In to add comment