Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.98/334: Рейтинг темы: голосов - 334, средняя оценка - 4.98
1 / 1 / 0
Регистрация: 24.01.2009
Сообщений: 14

Сортировка методом Вставок

01.10.2009, 15:10. Показов 64905. Ответов 25
Метки нет (Все метки)

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
 
struct rep
{
char route[20];
char time[5];
};
 
int main() {
clrscr();
rep mas[20];
rep temp;
int kil,i,j;
cout<<"Enter number of Routes: ";
cin>>kil;
for (i=0; i<kil; i++)
{
    cout<<"Enter Destination: ";
    cin>>mas[i].route;
    cout<<"Enter Time of Arriving: ";
    cin>>mas[i].time;
}
        for (i = 0; i < kil; i++)
        {
        temp=mas[i];
        for (j = i - 1; j >= 0 && mas[j].route > temp.route; j--)
            mas[j + 1] = mas[j];
            mas[j + 1] = temp;
        }
 
clrscr();
for (i=0; i<kil; i++)
{
cout<<mas[i].route<<" - "<<mas[i].time<<endl;
}
getch();
return 0;
}
Вот мой код но он почему то не сортирует так как надо хз почему уже даже незнаю в чём проблема?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.10.2009, 15:10
Ответы с готовыми решениями:

Сортировка методом вставок
Заполнить массив размером 20 случайными числами в диапазоне от 0 до 200. Во второй массив выбрать все двузначные элементы, отсортировать...

Сортировка методом вставок
Заполнить массив размером 20 случайными числами в диапазоне от 0 до 200. Во второй массив выбрать все двузначные элементы, отсортированные...

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

25
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
22.10.2011, 23:01
Студворк — интернет-сервис помощи студентам
Thinker, greeezz, Ну и как реализовать все это правильно?
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.10.2011, 23:08
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#define N 10
 
void InsertSort(int *a, int n)
{
   int buf, i, j;
   for (i = 1; i < n; i++)
   {
      buf = a[i];
      j = i - 1;
      while (j >= 0 && a[j] > buf)
      {
         a[j+1] = a[j];
         j--;
      }
      a[j+1] = buf;
   }
}
 
int main( )
{
    int a[N], i;
    srand(time(NULL));
    for (i = 0; i < N; i++)
       printf("%d ", a[i] = rand()%100);
    puts("\n");
    InsertSort(a, N);
    for (i = 0; i < N; i++)
       printf("%d ", a[i]);
    getch();
    return 0;
}
2
 Аватар для gorin
209 / 16 / 4
Регистрация: 18.08.2009
Сообщений: 571
22.10.2011, 23:26
Thinker, спс работает идеально!!!!
0
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 9
14.05.2013, 19:50
Цитата Сообщение от R0mm Посмотреть сообщение
Сортировка вставками
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template
void insertSort(T a[], long size) {
  T 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
 Аватар для Liss29
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,635
25.06.2016, 04:47
Этот алгоритм не совсем то, что нужно, насколько я понял, нужен алгоритм сортировки выборкой, но тем неменее он работает, сортирует, всё пучком. Интересует, именно вопрос, катит такой алгоритм или нет?
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void selectionSort(int a[], int size)
{
    int temp;
    
    for(int i = 0; i < size; i++)
    {
        for(int j = i + 1; j < size; j++)
        {
            if(a[i] > a[j])
            {
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
}
0
0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 23
12.01.2017, 20:42
Thinker, M128K145,
Помогите мне с сортировкой методом простой вставки. С 34 строчки сама вставка, не могу подогнать под свой массив.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <conio.h>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
setlocale(0,"");
const int m=6;
const int n=5;
int mas[m][n],min,u;
cout << "Рандомно заполненный массив \n";
for (int i=0;i<m;i++) {
    for(int j=0;j<n;j++) {
        mas[i][j]= rand()%100;
      cout << mas[i][j]<<"\t";
    }
}
 
int minrow[m];
for (int i=0; i<m; i++) {
minrow[i] = mas[i][0];
   for (int j=0; j<n;j++) {
      if (minrow[i] > mas[i][j])
        minrow[i]=mas[i][j];
   }
 
cout<<" \n min в строке "<<i+1<<": "<<minrow[i];
}
cout<<"\n";
 
 
int i,j,x;
    for(i=1;i<n;i++)
    {
x=a[i];//запомнили элемент, который будем вставлять
j=i-1;
    while(x<a[j]&&j>=0)//поиск подходящего места
    {
a[j+1]=a[j];//сдвиг вправо
j--;
}
    a[j+1]=x;//вставка элемента
    }
 
 
cout<<"\n";
for (int i=0;i<m;i++) {
    for(int j=0;j<n;j++) {
    cout<<mas[i][j]<<"\t";
    }
}
cout<<"\n";
system("\npause");
 
 
}
Ошибся в этом сообщении - не вставкой, а включением.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.01.2017, 20:42

Сортировка по возрастанию методом вставок
Массив из 5 целых чисел заполнить вводом с клавиатуры.Произвести сортировку массива по возрастанию методом вставок. Заполнение массива...

Сортировка методом простых вставок
Сортировка методом простых вставок - алгоритм S с. Вычисление трудоемкости Замер времени для отсортированного массива, отсортированного в...

Сортировка списка методом простых вставок
Помогите сделать чтобы в программе были двусвязные списки и чтобы списки из файла выводились в нормальном порядке (как в файлах), а не с...

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

Сортировка диагоналей матрицы методом Шелла/вставок
Дана матрица размерностью n*n, содержащая целые числа. Отсортировать диагонали матрицы, параллельные побочной, по возрастанию элементов...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ начало и оглавление - Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru