Форум программистов, компьютерный форум CyberForum.ru

Сортировка простого массива - C++

Восстановить пароль Регистрация
 
nesm
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 4
18.04.2010, 22:35     Сортировка простого массива #1
Здравствуйте!
Имеется проблема с сортировкой простого массива. Необходимо сначала вывести элементы входящие в интервал [a,b], затем все остальные.
Сделал методом пузырька, все работает.

C++
1
2
3
4
5
6
7
8
for (j=1;j<n;j++) 
for (i=0;i<n-j;i++)
    if ((int(x[i])<a)||(int(x[i])>b))
    { 
      r=x[i];
      x[i]=x[i+1];
      x[i+1]=r;
    }
Преподаватель попросил уменьшит кол-во проходов (было 45). Решил сделать методом вставки. Опять же написал.

C++
1
2
3
4
5
  for ( i=0; i < n; i++)  
  r = x[i];   
  for ( j=i-1; j>=0 && x[j] > r; j--)
  x[j+1] = x[j]; 
  x[j+1] = r;
И здесь возник вопрос: Куда вставлять условие сортировки?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,693
18.04.2010, 22:48     Сортировка простого массива #2
Алгоритмы сортировок , пост #2
мб поможет
nesm
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 4
18.04.2010, 22:52  [ТС]     Сортировка простого массива #3
оттуда и брал метод вставки, но куда вставлять условия не понял
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,693
18.04.2010, 22:57     Сортировка простого массива #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void insertSort(int a[], int size) //аргументы-массив a, размером size.
{
  int x;
  long i, j;
 
  for ( i=0; i < size; i++) // цикл проходов, i - номер прохода
  {  
    x = a[i];   
        // поиск места элемента в готовой последовательности 
    for ( j=i-1; j>=0 && a[j] > x; j--)
      a[j+1] = a[j];    // сдвигаем элемент направо, пока не дошли
        // место найдено, вставить элемент
    a[j+1] = x;
  }
}
nesm
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 4
18.04.2010, 23:01  [ТС]     Сортировка простого массива #5
neske,
как написать метод вставки я знаю(он у меня уже написан), но мне необходимо сортировать не по порядку возрастания, а по определенному принципу
Цитата Сообщение от nesm Посмотреть сообщение
сначала вывести элементы входящие в интервал [a,b], затем все остальные.
Yandex
Объявления
18.04.2010, 23:01     Сортировка простого массива
Ответ Создать тему
Опции темы

Текущее время: 22:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru