С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
jon_illien
3 / 3 / 1
Регистрация: 14.08.2012
Сообщений: 78
1

Ошибка в сортировке методом выбора

25.08.2012, 18:10. Просмотров 383. Ответов 3
Метки нет (Все метки)

Может сделаете замечания... посмотрите, начиная с комента "метод сортировки"...

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
59
60
61
//#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
//#include <iostream>
 
#define size 10
 
//using namespace std;
 
int main(void)
{SetConsoleOutputCP (1251);
puts ("Selection sorting\n\n");
 
 
int array[size] = {0}, buffer = 0, min = 0, temp = 0;
srand((unsigned)(time(0))); rand();
 
printf ("Вывод беспорядочных элементов массива:\n");
 
for(int z = 0; z < size; z++)                                   //Заполнение массива случ. числами и их вывод
{
    array[z] = rand () % 10 + 1;
    printf ("%d ", array[z]);
}puts ("\0");
 
 
 
//////////////////////////////////////////////////////////////////////////////
for(int a = 0; a < size - 1; a++)                               //Метод сортировки
{
    min = array[a];
 
    for(int b = 0; b < size - 1; b++)
    {
        if (min > array[b + 1])
        {
            min = array[b + 1];
            temp = b + 1;
        }
    }
    buffer = array[a];
    array [a] = array[temp];
    array[temp] = buffer;
}
printf (" min el = %d \n", temp);
 
 
 
//////////////////////////////////////////////////////////////////////////////
 
printf ("Вывод упорядоченных элементов массива:\n");
for (int d = 0; d < size; d++)                                  //Вывод отсортированного массива
{
    printf ("%d ", array[d]);
}
 
getch();
puts("\n\n");
 
}
Добавлено через 14 минут
Вот кое-что изменил:

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
59
60
61
62
63
64
65
66
67
68
69
70
#include <stdio.h>
//#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
//#include <iostream>
 
#define size 10
 
//using namespace std;
 
int main(void)
{SetConsoleOutputCP (1251);
puts ("Selection sorting\n\n");
 
 
int array[size] = {0}, buffer = 0, min = 0, temp = 0, exchange = 0;
srand((unsigned)(time(0))); rand();
 
printf ("Вывод беспорядочных элементов массива:\n");
 
for(int z = 0; z < size; z++)                                   //Заполнение массива случ. числами и их вывод
{
    array[z] = rand () % 10 + 1;
    printf ("%d ", array[z]);
}puts ("\0");
 
 
 
//////////////////////////////////////////////////////////////////////////////
for(int a = 0; a < size - 1; a++)                               //Метод сортировки
{
 
    min = array[a];
 
    for(int b = 0; b < size - 1; b++)
    {
        exchange = 0;
 
        if (min > array[b + 1])
        {
            min = array[b + 1];
            temp = b + 1;
            exchange = 1;
        }
    }
 
    if(exchange)
    {
        buffer = array[a];
        array [a] = array[temp];
        array[temp] = buffer;
    }
}
printf (" min el = %d \n", temp);
 
 
 
//////////////////////////////////////////////////////////////////////////////
 
printf ("Вывод упорядоченных элементов массива:\n");
for (int d = 0; d < size; d++)                                  //Вывод отсортированного массива
{
    printf ("%d ", array[d]);
}
 
getch();
puts("\n\n");
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2012, 18:10
Ответы с готовыми решениями:

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

Ошибка при сортировке односвязного списка методом пузырька
Здравствуйте, возникла проблема. Нужно отсортировать элементы структуры...

Комментарии к сортировке методом Шелла
#include &lt;conio.h&gt; #include &lt;stdio.h&gt; void shellSort(int a, int n); void...

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

При сортировке методом полного перебора массив сбивается
Массив сбивается ровно на единицу при сортировке. Понять не могу где же. Может...

3
Thinker
Эксперт С++
4234 / 2208 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.08.2012, 18:22 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
for(int a = 0; a < size - 1; a++)                               //Метод сортировки
{
 
    min = array[a];
 
    exchange = 0;
    for(int b = a+1; b < size; b++)
    {
 
        if (min > array[b])
        {
            min = array[b];
            temp = b;
            exchange = 1;
        }
    }
 
    if(exchange)
    {
        array[temp] = array[a];
        array [a] = min;
    }
}
1
jon_illien
3 / 3 / 1
Регистрация: 14.08.2012
Сообщений: 78
25.08.2012, 18:50  [ТС] 3
Цитата Сообщение от Thinker Посмотреть сообщение
Немного подправил ваш алгоритм:]
Как?!) Работает!) Спасибо огромное!! А, вы сами проверяли или по памяти написали? Я маялся дня 2 с этим.
0
Thinker
Эксперт С++
4234 / 2208 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.08.2012, 18:54 4
Цитата Сообщение от jon_illien Посмотреть сообщение
А, вы сами проверяли или по памяти написали?
Не проверял, просто алгоритм простой, да и общеизвестный.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2012, 18:54

Сортировка методом выбора и методом пузырьков
Доброго времени суток, форумчане). Я не спец в программировании, сразу...

Ошибка в сортировке
Часть программы я сделал, но сортировка массива выходит кривой, та строка,...

Ошибка в сортировке
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;algorithm&gt; int const N =...


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

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

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