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

Реализация сортировки выбором - C++

Восстановить пароль Регистрация
 
deepLulz
 Аватар для deepLulz
4 / 4 / 0
Регистрация: 12.02.2012
Сообщений: 46
06.05.2012, 16:39     Реализация сортировки выбором #1
Есть одномерный массив, который необходимо отсортировать по возрастанию алгоритмом выбора и выводить на экран каждые изменения во время сортировки, примерно как тут:
Реализация сортировки выбором
Сделал следующее:
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
#include <stdio.h>
#include <conio.h>
 
#define MAX 50
 
main(){
    int m[MAX], n, i, j, t;
    printf("N = "); scanf("%i",&n);
    printf("M:\n");
    for(i=0; i<n; i++){
        printf("m[%i] = ",i);
        scanf("%i",&m[i]);
        if(m[i]==0) break;
    }
    for(i=0; i<n; i++){
        for(j=i+1; j<n; j++){
            if(m[i]>m[j]){
                t = m[j];
                m[j] = m[i];
                m[i] = t;
                printf("%i  ",m[i]);
            }
        }
    }
    printf("\nIspolzovan algoritm obmenom");
    getch();
    return 0;
}
Работать не хочет - не сортирует и не выводит на экран ничего. Помогайте, комрады
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ExcellencE
20 / 20 / 2
Регистрация: 22.08.2011
Сообщений: 79
06.05.2012, 17:02     Реализация сортировки выбором #2
C++
1
#include "stdafx.h"
- вот это нужно если в VS пишете


int main() - а вот это нужно в любом случае
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
06.05.2012, 17:11     Реализация сортировки выбором #3
пузырьковка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void selection_sort(int *tr, const int sz)
{
int tmp;
int is=1
while(is)
{
is=0;
for (int i=1;i<=sz;i++)
{
        
        if (tr[i] < tr[i-1])
        {
        tmp=tr[i-1];
        tr[i-1]tr[i];
        tr[i],tmp;
        is=1;
        }
}
}    
   
    
}
deepLulz
 Аватар для deepLulz
4 / 4 / 0
Регистрация: 12.02.2012
Сообщений: 46
06.05.2012, 17:14  [ТС]     Реализация сортировки выбором #4
Цитата Сообщение от ExcellencE Посмотреть сообщение
C++
1
#include "stdafx.h"
- вот это нужно если в VS пишете
Не нужно, я не в VS пишу.

Цитата Сообщение от ExcellencE Посмотреть сообщение
int main() - а вот это нужно в любом случае
Нет, так как main ничего в итоге не возвращает, ибо мне это не нужно.
Единственное, что в это программе не правильно - алгоритм:
C++
1
2
3
4
5
6
7
8
9
10
for(i=0; i<n; i++){
        for(j=i+1; j<n; j++){
            if(m[i]>m[j]){
                t = m[j];
                m[j] = m[i];
                m[i] = t;
                printf("%i  ",m[i]);
            }
        }
    }
Его править и нужно.




Van111, спасибо, но пузырьком не подходит + нет вывода на экран действий, которые алгоритм проводит.
ExcellencE
20 / 20 / 2
Регистрация: 22.08.2011
Сообщений: 79
06.05.2012, 17:23     Реализация сортировки выбором #5
deepLulz, как знаете, но у меня с этими исправлениями заработало. (Хоть и неправильно)
deepLulz
 Аватар для deepLulz
4 / 4 / 0
Регистрация: 12.02.2012
Сообщений: 46
06.05.2012, 17:30  [ТС]     Реализация сортировки выбором #6
ExcellencE, у меня и без "исправлений" работает, хоть и не правильно
ExcellencE
20 / 20 / 2
Регистрация: 22.08.2011
Сообщений: 79
06.05.2012, 17:57     Реализация сортировки выбором #7
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 "stdafx.h"
#include <stdio.h>
#include <conio.h>
 
#define MAX 50
 
int main()
{
    int m[MAX], n, i, j, t;
    printf("N = "); scanf("%i",&n);
    printf("M:\n");
    for(i=0; i<n; i++){
        printf("m[%i] = ",i);
        scanf("%i",&m[i]);
        if(m[i]==0) break;
    }
    printf("\n");
 
    for(i=0; i<n; i++){
        for(j=i+1; j<n; j++){
            if(m[i]>m[j]){
                t = m[j];
                m[j] = m[i];
                m[i] = t;
                printf("%d ---  ", m[i]);
                for(int z =0; z<n; z++) printf("%d  ", m[z]);
                printf("\n");
            }
        }
    }
    printf("\n\nIspolzovan algoritm obmenom\n");
    for(i=0; i<n; i++) printf("%d ", m[i]);
    getch();
    return 0;
}
ммм??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2012, 18:03     Реализация сортировки выбором
Еще ссылки по теме:

Реализация алгоритмов сортировки C++
C++ Метод сортировки прямым выбором
Работа с массивами через указатели, адреса. Функция сортировки выбором любого массива C++

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

Или воспользуйтесь поиском по форуму:
deepLulz
 Аватар для deepLulz
4 / 4 / 0
Регистрация: 12.02.2012
Сообщений: 46
06.05.2012, 18:03  [ТС]     Реализация сортировки выбором #8
ExcellencE, а вот теперь спасибо, большое спасибо!
Сейчас чуть-чуть наведу красоту и отлично!
Yandex
Объявления
06.05.2012, 18:03     Реализация сортировки выбором
Ответ Создать тему
Опции темы

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