Одной из самых распространенных операций, выполняемых над массивами, является сортировка. Существует множество различных алгоритмов сортировки. Широко применяется, например, сортировка перемешиванием и сортировка методом Шелла. Известен также алгоритм
Алгоритм сортировки пузырьковым методом получил свое название от способа, используемого для упорядочивания элементов массива. Здесь выполняются повторяющиеся операции сравнения и при необходимости меняются местами смежные элементы. При этом элементы с меньшими значениями постепенно перемещаются к одному концу массива, а элементы с большими значениями — к другому. Этот процесс напоминает поведение пузырьков воздуха в резервуаре с водой. Пузырьковая сортировка выполняется путем нескольких проходов по массиву, во время которых при необходимости осуществляется перестановка элементов, оказавшихся "не на своем месте". Количество проходов, гарантирующих получение отсортированного массива, равно количеству элементов в массиве, уменьшенному на единицу.
В следующей программе реализована сортировка массива (целочисленного типа), содержащего случайные числа. Эта программа заслуживает внимательного разбора.
// Использование метода пузырьковой сортировки
// для упорядочения массива.
#include
#include
using namespace std;
int main()
{
int nums[10];
int a, b, t;
int size;
size = 10; // Количество элементов, подлежащих сортировке.
// Помещаем в массив случайные числа.
for(t=0; t
// Отображаем исходный массив.
cout << "Исходный массив: ";
for(t=0; t
cout << '\n';
// Реализация метода пузырьковой сортировки.
for(a=1; a
for(b=size-1; b>=a; b--) {
if(nums[b-1] > nums[b]) { // Элементы неупорядочены.
// Меняем элементы местами.
t = nums[b-1];
nums[b-1] = nums[b];
nums[b] = t;
}
}
}
// Конец пузырьковой сортировки.
// Отображаем отсортированный массив.
cout << "Отсортированный массив: ";
for(t=0; t
cout << nums[t] << ' ';
return 0;
}
Хотя алгоритм пузырьковой сортировки пригоден для небольших массивов, для массивов большого размера он становится неэффективным. Более универсальным считается алгоритм
Чаще всего одномерные массивы используются для создания символьных строк. В C++
Строка —
Например, объявляя массив
char str [11];
Заданный здесь размер (
Как упоминалось выше в этой книге, C++ позволяет определять строковые литералы. Вспомним, что
"Привет"
"Мне нравится C++"
"#$%@@#$"
""
Строка, приведенная последней (""), называется нулевой. Она состоит только из одного нулевого символа (признака завершения строки). Нулевые строки используются для представления пустых строк.
Вам не нужно вручную добавлять в конец строковых констант нулевые символы. С++-компилятор делает это автоматически. Следовательно, строка "ПРИВЕТ" в памяти размещается так, как показано на этом рисунке: