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

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

18.04.2010, 22:35. Просмотров 533. Ответов 4
Метки нет (Все метки)

Здравствуйте!
Имеется проблема с сортировкой простого массива. Необходимо сначала вывести элементы входящие в интервал [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;
И здесь возник вопрос: Куда вставлять условие сортировки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2010, 22:35
Ответы с готовыми решениями:

сортировка простого массива
уважаемые программисты помогите пожалуйста переписать php код на С++, вот сам...

сортировка выбором простого массива
помогите пожалуйста нарисовать блок схему, вот код по которому нужно нарисовать...

Сортировка методом Шелла, не простого массива
Нужна помощь в реализации сортировки методом Шелла. Кидаю весь код, на всякий...

Сортировка массива методом простого обмена
Привет,программисты! Мне поставлена задача выполнить сортировку одномерного...

Рекурсия: сортировка массива методом простого выбора
Помогите решить задачу: написать процедуру сортировки массива методом простого...

4
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
18.04.2010, 22:48 #2
Алгоритмы сортировок , пост #2
мб поможет
0
nesm
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 4
18.04.2010, 22:52  [ТС] #3
оттуда и брал метод вставки, но куда вставлять условия не понял
0
neske
1527 / 894 / 192
Регистрация: 26.03.2010
Сообщений: 3,074
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;
  }
}
0
nesm
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 4
18.04.2010, 23:01  [ТС] #5
neske,
как написать метод вставки я знаю(он у меня уже написан), но мне необходимо сортировать не по порядку возрастания, а по определенному принципу
Цитата Сообщение от nesm Посмотреть сообщение
сначала вывести элементы входящие в интервал [a,b], затем все остальные.
0
18.04.2010, 23:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2010, 23:01

Сортировка простого поиска
Нужна сортировка &quot;Простой поиск&quot;. Должна быть одна из стандартных, но что-то...

Сортировка методом простого обмена
Дано n точек на плоскости. Указать (n-1)-звенную несамопересекающуюся...

Выполнить сортировку одномерного массива по возрастанию методом простого обмена
Выполнить сортировку одномерного массива по возрастанию методом простого обмена


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

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

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