Читайте также:
|
|
Если аргументом ф-ции является массив, то в функцию передаётся значение адреса 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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Функции. Формальные параметры и фактические аргументы. Способ передачи аргументов в функции. Привести пример. | | | Символы и символьные константы. Представления символов. Ввод и вывод символов. Привести примеры. |