Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
-=VenD=-
0 / 0 / 0
Регистрация: 14.03.2010
Сообщений: 21
#1

Отсортировать целочисленный одномерный массив - C++

20.12.2010, 20:29. Просмотров 1182. Ответов 3
Метки нет (Все метки)

ПОЖАЛУЙСТА ПОМОГИТЕ НАПИСАТЬ ПРОГу:

2) Написать программу, позволяющую сортировать введенный пользовате-лем целочисленный одномерный массив по убыванию или по возраста-нию (в зависимости от выбора пользователя). Сортировку по убыванию необходимо реализовать методом пузырька, а сортировку по возрастанию – методом выбора. Указанные виды сортировок нужно оформить в виде отдельных функций. Программа должна позволять работать столько раз, сколько угодно пользователю.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2010, 20:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Отсортировать целочисленный одномерный массив (C++):

Отсортировать одномерный целочисленный массив сортировкой Шелла
Требуется отсортировать массив сортировкой Шелла. Считывать массив нужно из...

Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив
Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный...

Преобразовать двумерный целочисленный массив в одномерный
С++ Написать программу, преобразующую двумерный целочисленный массив в...

Целочисленный одномерный массив, сортировка по убыванию и возрастанию
Написать программу, позволяющую сортировать введенный пользовате-лем...

Отсортировать по убыванию элементов последнего столбца целочисленный двухмерный массив
Помогите пожалуйста. Ломаю голову не могу написать Отсортировать по...

Создать динамический целочисленный массив, и отсортировать его методом вставок
Помогите пожалуйста создать динамический целочисленный массив. Размер массива...

3
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
20.12.2010, 20:30 #2
-=VenD=-, http://www.cyberforum.ru/cpp-beginners/thread27084.html
0
-=VenD=-
0 / 0 / 0
Регистрация: 14.03.2010
Сообщений: 21
20.12.2010, 21:48  [ТС] #3
Сортировка выбором

Идея метода состоит в том, чтобы создавать отсортированную последовательность путем присоединения к ней одного элемента за другим в правильном порядке.Код C++

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template<class T>
void selectSort(T a[], long size) {
long i, j, k;
T x;
 
for( i=0; i < size; i++) { // i - номер текущего шага
k=i; x=a[i];
for( j=i+1; j < size; j++) // цикл выбора наименьшего элемента
if ( a[j] < x ) {
k=j; x=a[j]; // k - индекс наименьшего элемента
}
a[k] = a[i]; a[i] = x; // меняем местами наименьший с a[i]
}
}
Если входная последовательность почти упорядочена, то сравнений будет столько же, значит алгоритм ведет себя неестественно.

Сортировка пузырьком

Идея метода: шаг сортировки состоит в проходе снизу вверх по массиву. По пути просматриваются пары соседних элементов. Если элементы некоторой пары находятся в неправильном порядке, то меняем их местами.Код C++

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template<class T>
void bubbleSort(T a[], long size) {
  long i, j;
  T x;
 
  for( i=0; i < size; i++) {            // i - номер прохода
    for( j = size-1; j > i; j-- ) {     // внутренний цикл прохода
      if ( a[j-1] > a[j] ) {
      x=a[j-1]; a[j-1]=a[j]; a[j]=x;
    }
  }
}
}


Дополнительная память, очевидно, не требуется. Поведение усовершенствованного (но не начального) метода довольно естественное, почти отсортированный массив будет отсортирован намного быстрее случайного. Сортировка пузырьком устойчива, однако шейкер-сортировка утрачивает это качество.
На практике метод пузырька, даже с улучшениями, работает слишком медленно. А потому - почти не применяется.


Помогите это реализовать!
0
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
20.12.2010, 22:07 #4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Пузирьковая
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void bubble_sort(int *Arr, int n)
{
    for(int i = n - 1; i >= 1; --i)
    {
        for(int j = 0; j < i; ++j)
        {
            if(Arr[j] > Arr[j+1])
            {
                int temp = Arr[j];
                Arr[j] = Arr[j+1];
                Arr[j+1] = temp;
            }
        }
    }
}
Выбором
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void selectSort(int *a, int size)
 {
  long i, j, k;
  int x;
 
  for( i=0; i < size; i++)
   {
    k=i; x=a[i];
 
    for( j=i+1; j < size; j++)
      if (  a[j] < x )
      {
        k=j; x=a[j];
      }
 
    a[k] = a[i]; a[i] = x;
  }
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2010, 22:07
Привет! Вот еще темы с решениями:

Отсортировать по убыванию элементов последнего столбца целочисленный двухмерный массив 5x4
Отсортировать по убыванию элементов последнего столбца целочисленный двухмерный...

Отсортировать по убыванию элементов последнего столбца целочисленный двухмерный массив 5x4 C++
Помогите пожалуйста. Ломаю голову не могу написать Отсортировать по...

Отсортировать заданный целочисленный массив при помощи сортировки выбором (selection sort)
Напишите пожалуста простенькие программы на подобие этой: #include &lt;iostream&gt;...

Задан целочисленный массив размера N. Отсортировать серии в массиве в порядке убывания их длины
В общем, есть две задачи, ух на какую же веселую и ни черта не понятную для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru