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

Метод Шелла - C++

Восстановить пароль Регистрация
 
DanielDefo
5 / 5 / 0
Регистрация: 13.09.2009
Сообщений: 225
16.06.2010, 13:17     Метод Шелла #1
Помогите найти ошибку.
Задание - Провести сортировку последовательности а1, … , аn методом Шелла.

Вот что получилось.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream.h>
void SortShell(int* arr, int size) {
  int step = size / 2;
  while (step != 0) {
     for (int i = step; i < size; ++i) {
        int tmp = arr[i];
        int j;
        for (j = i - step; j >= 0 && arr[j] > tmp; j -= step)
          arr[j + step] = arr[j];
        arr[j + step] = tmp;
     }
     step /= 2;
  }
}
При кампиляции ошибок 0, а при запуске показывает 1 ошибку.

Linking a1111111.exe:
Linker Warning: No module definition file specified: using defaults
Linker Error: Undefined symbol _main in library file C:\BC45\LIB\cwl.lib in module winmain
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2010, 13:17     Метод Шелла
Посмотрите здесь:

Метод Шелла C++
C++ Не получается обнаружить ошибку(метод Шелла)
C++ Метод Шелла
C++ ШЕЛЛА
Метод Шелла, алгоритм обмена C++
C++ Метод Шелла
C++ Сортировка, метод шелла
C++ метод сортировки Шелла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SashaPinsk
 Аватар для SashaPinsk
39 / 37 / 2
Регистрация: 27.12.2009
Сообщений: 73
16.06.2010, 14:59     Метод Шелла #2
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define n 5
int shall(int*);
 
void main()
{
    int ms[n]={34, 45, 16, 43, 30};
    //for(int i=0; i<n; i++)
    //  scanf("%d", &ms[i]);
    shall(ms);
    for(int i=0; i<n; i++)
        printf("%3d", ms[i]);
    getch();
}
 
int shall(int *p)     //Сортировка Шелл
{
    int i, j, buffer, dp;
    for(dp=n/2; dp>0; dp/=2)
        for(i=dp; i<n; i++)
            for(j=i-dp; j>=0 && p[j]>p[j+dp]; j-=dp)
            {
                buffer=p[j+dp];
                p[j+dp]=p[j];
                p[j]=buffer;
            }
    return *p;
}
DanielDefo
5 / 5 / 0
Регистрация: 13.09.2009
Сообщений: 225
16.06.2010, 15:03  [ТС]     Метод Шелла #3
оно ту сразу выводит массив отсортированный, а нельзя напирмер чтоб ввело рандомно массив и потом уже произошла сортировка?
Yandex
Объявления
16.06.2010, 15:03     Метод Шелла
Ответ Создать тему
Опции темы

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