Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Массивы как аргументы функций. Функция сортировки массива методом пузырька.

Читайте также:
  1. F(x) Функция
  2. II. Отнесение опасных отходов к классу опасности для ОКРУЖАЮЩЕЙ ПРИРОДНОЙ СРЕДЫ расчетным методом
  3. II. Функция "холокоста в мире после 1945 г
  4. V. Если жизнь излишне деловая,функция слабеет половая.
  5. а. Морфология и функция BBB
  6. А.2.1.12. Переміщення пацієнта з ліжка на стілець (виконують двоє чи більше осіб методом піднімання плечем; пацієнт може сидіти, але не може пересуватися самотужки).
  7. А.2.1.2. Повертання пацієнта методом вільного перекочування і надання положення на боці (виконується вдвох).

Если аргументом ф-ции является массив, то в функцию передаётся значение адреса 1го элемента массива и массив можно изменить. Функция может записать по этому адресу новое значение. Зная адрес 1го элемента массива функция может получать доступ ко всем его элементам.

Сортировка - упорядочивание массива в порядке возрастания или убывания элементов. Часто встречается задача поиска элементов массива. Она решается быстрее, если массив упорядочен.

Метод пузырька. Имеем элементы массива, которые нужно упорядочить по возрастанию: 91; 56; 14; 17; 64. В методе пузырька сравниваются поочередно соседние элементы. Если элементы расположены не в нужном порядке, то меняем их местами: (56,91,14,17,64); (56,14,91,17,64); (56,14,17,91,64); (56,14,17,64,91); (14,56,17,64,91); (14,17,56,64,91). После первого прохода наибольший элемент окажется на нужном последнем месте, такое перемещение напоминает всплытие пузырька. Далее процесс продолжается без участия этого элемента. Последний раз сравниваются 1 и 2 элементы. На этом сортировка завершается.

//Сортировка массива

#include <iostream.h>

//Объявление внешних переменных

extern int x[]; //Объявление массива

extern int SIZE; //Размер массива

//Объявления функций

void get_arr(int[], int n); //Получение массива из n элементов

void bubble_sort(int[], int n); //Сортировка массива методом пузырька

void prn_arr(int[], int n); //Вывод массива

#include <stdlib.h> //Для exit(int) и rand()

int main()

{ int n; //Размер массива

cout << "\nВведите размер массива < " << SIZE << ": "; cin >> n;

if (n > SIZE || n<=0) //Проверка размера

{ cout << "Размер массива " << n << "не подходит\n";

exit(1); } //Завершение программы

get_arr (x, n); //Создание массива

cout << "Исходный массив:\n";

prn_arr(x, n); //Вывод исходного массива

bubble_sort(x, n); //Сортировка

cout << "\nОтсортированный массив:\n";

prn_arr(x, n); //Вывод упорядоченного массива

return 0; }

 

//Определение функций

void get_arr(int x[], int n) //get_arr: заполняет x случайными числами

{ int i; //Локальная переменная

for(i = 0; i < n; i++)

x[i] = rand(); } //rand генерирует целое случайное число

void prn_arr(int x[], int n) //prn_arr: вывод массива

{ int i;

for(i = 0; i < n; i++)

cout << x[i] << ", ";}

void bubble_sort(int x[], int n) //bubble_sort: сортировка массива x методом пузырька

{ int i, j, tmp;

for(i = n - 1; i > 0; i--) //i задает верхнюю границу

for(j = 0; j < i; j++) //Цикл сравнений соседних элементов

if(x[j] > x[j + 1]){ //Если нет порядка,

tmp = x[j]; //перестановка местами

x[j] = x[j + 1]; //соседних

x[j + 1] = tmp; } //элементов

}

//Определение внешних переменных

const int SIZE = 100; //Размер массива

int x[SIZE]; //Массив

 


Дата добавления: 2015-07-08; просмотров: 227 | Нарушение авторских прав


Читайте в этой же книге: Строки символов представляют последовательность произвольных символов, заключенных в двойные кавычки, например, “Строка символов”, “String of characters”. | Процесс создания программы. Исходная и рабочая программы. Препроцессор, компилятор, редактор связей. | Целые типы в языке Си и операции над ними. Представление целых констант в различных системах счисления. | Операторы присваивания. Приоритет и порядок выполнения операторов. Привести примеры. | Цикл do…while. Программа вычисления квадратного корня. | Привести пример программы по обработке строк. | Препроцессор. Директивы препроцессора. | Макросы. Макросы с параметрами. | Указатели и адреса. Привести пример программы, использующей указатели. | Указатели и массивы. Адресная арифметика. |
<== предыдущая страница | следующая страница ==>
Функции. Формальные параметры и фактические аргументы. Способ передачи аргументов в функции. Привести пример.| Символы и символьные константы. Представления символов. Ввод и вывод символов. Привести примеры.

mybiblioteka.su - 2015-2024 год. (0.008 сек.)