Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Под сортировкой массива подразумевается процесс перестановки элементов массива, целью которого является размещение элементов массива в определенном порядке. Например, если имеется массив целых чисел а, то после выполнения сортировки по возрастанию должно выполняться условие:
a[1] < a[2] < … < a[size]
где size — верхняя граница индекса массива.
Существует много методов (алгоритмов) сортировки массивов. Рассмотрим один из них - метод прямого выбора.
Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:
1. Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.
2. Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.
3. И так далее до предпоследнего элемента.
В листинге 5.4 приведена реализация этого метода.
// sortArr.cpp: Defines the entry point for the console application.
//
//Листинг 5.4. Сортировка массива прямым выбором
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
int main(int argc, char* argv[])
{
// vvod massiva
int a[]={5,3,17,39,33,1,2,16,18}; // massiv tselyh chisel
const int SIZE = sizeof(a)/sizeof(int);// razmer massiva
cout <<"SIZE =" <<SIZE <<endl;
int min; // nomer min elementa
int buf; // bufer, ispol'zuemyi pri obmene elementov massiva
int j; // nomer elementa, sravnivaemogo s min
for (int i=0; i<=SIZE-2; i++)
{
min=i;
for (j=i+1; j<=SIZE-1; j++)
if (a[j] < a[min])
min=j;
buf= a[i];
a[i]=a[min];
a[min]=buf;
} // end for i
for (int k=0; k<=SIZE-1; k++)
{
if (k==0) cout << "\nelementy massiva \n\n";
cout << a[k] << endl;
} // end for k
getch();
return 0;
}
Строки
Безусловно, наиболее важным применением одномерных массивов является создание символьных строк. С++ поддерживает строки двух видов. Первый, наиболее часто используемый, — это строка с завершающим нулем или, другими словами, массив символов, заканчивающийся нулем. Строка с завершающим нулем содержит символы, образующие эту строку, за которыми помещается ноль. Такие строки пользуются чрезвычайно широко, так как они обеспечивают высокий уровень эффективности и предоставляют программисту возможность выполнять разнообразные строковые операции. Когда программист на С++ использует термин "строка", он (или она) обычно имеет в виду и именно строку с завершающим нулем. Второй вид строк, определенный в С++ — это класс string, который входит в библиотеку классов С++. Таким образом, string не является встроенным типом. Класс string позволяет использовать объектно-ориентированный подход при обработке строк, однако он используется не так широко, как строка с завершающим нулем. Здесь мы рассмотрим первый вид строк.
Дата публикования: 2014-12-11; Прочитано: 247 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!