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

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

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

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

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

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

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

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

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

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

3
asics
Freelance
Эксперт С++
2858 / 1793 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
20.12.2010, 20:30 2
-=VenD=-, Алгоритмы сортировок
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
Эксперт С++
2858 / 1793 / 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++
Помогите пожалуйста. Ломаю голову не могу написать Отсортировать по...


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

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

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