1 / 1 / 0
Регистрация: 24.01.2009
Сообщений: 14

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

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

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

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
Author24 — интернет-сервис помощи студентам
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,547
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru