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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
jon_illien
2 / 2 / 1
Регистрация: 14.08.2012
Сообщений: 78
#1

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

25.08.2012, 18:10. Просмотров 353. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в сортировке методом выбора (C++):

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

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

Комментарии к сортировке методом Шелла - C++
#include &lt;conio.h&gt; #include &lt;stdio.h&gt; void shellSort(int a, int n); void mini_sort(int A,int m,int i); void main() { int...

При сортировке методом полного перебора массив сбивается - C++
Массив сбивается ровно на единицу при сортировке. Понять не могу где же. Может у кого-нибудь была похожая проблема? #include...

Сортировка методом выбора и методом пузырьков - C++
Доброго времени суток, форумчане). Я не спец в программировании, сразу говорю). Нам с другом дали задание сравнить эти 2 сортировке ( в...

Ошибка в сортировке - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;algorithm&gt; int const N = 5; using namespace std; class book{ ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 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
2 / 2 / 1
Регистрация: 14.08.2012
Сообщений: 78
25.08.2012, 18:50  [ТС] #3
Цитата Сообщение от Thinker Посмотреть сообщение
Немного подправил ваш алгоритм:]
Как?!) Работает!) Спасибо огромное!! А, вы сами проверяли или по памяти написали? Я маялся дня 2 с этим.
0
Thinker
Эксперт C++
4226 / 2200 / 150
Регистрация: 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
Привет! Вот еще темы с ответами:

Ошибка в сортировке - C++
#include &lt;iostream&gt; using namespace std; int main() { int A, c; for (int i = 0; i &lt; 3; i++) { for (int j = 0; j &lt; 3;...

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

Ошибка при сортировке - C++
При сортировке массива вылетает причем именно на последнем числе сортирую так : for (int i=0;i&lt;count;i++) { if (a&gt;a) { ...

Ошибка в сортировке пузырьком - C++
помогите разобраться в чем заключается ошибка. при выполнении функции происходит ошибка #include &lt;iostream&gt; using namespace...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.08.2012, 18:54
Ответ Создать тему
Опции темы

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