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

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

Войти
Регистрация
Восстановить пароль
 
warwar123
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 3
#1

Сортировка пузырьком - C++

30.05.2013, 06:23. Просмотров 531. Ответов 6
Метки нет (Все метки)

Не удается сделать сортировку пузырьком (то что после //1111), не сортирует, либо ошибки в памяти.

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// spisok.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include "conio.h"
 
using namespace std;
 
 
struct Item 
{
int info;
Item* next;
};
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
 
Item *first = NULL; //Указатель на начало списка
Item *p;
 
int i;
 
// Создать список
for (;;) 
{
// Вводить числа, пока не введем 0
cin >> i;
//if (!i) break;
if (i==999) break;
 
// Создать новый элемент списка
p = new Item;
p->info = i;
 
// Присоединить новый элемент к началу списка
p->next = first ;
first = p;
}
 
 
 
 
//1111
 
Item *q;
 
 
p = first;
 
while (p) 
{
 
    if((p->info)>(p->next->info))
    {
 
        q=p;
 
        p=p->next;
 
        p->next=q;
 
    }
 
p = p->next;
 
 
}
 
 
 
 
//2222
 
 
 
 
 
 
 
// Пройти список и вывести элементы
p = first;
while (p) {
cout << p->info << " ";
p = p->next;
}
 
// Пройти список и удалить элементы
while (first) 
{
p = first;
first = first->next ;
delete p;
}
 
getch();
 
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2013, 06:23     Сортировка пузырьком
Посмотрите здесь:

Сортировка пузырьком - C++
Как сделать пошаговый вывод сортировки? #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;ctime&gt; using namespace std; void...

Сортировка пузырьком - C++
Здравствуйте. Подскажите пожалуйста, написал простой код который должен отсортировать список участников соревнования по убыванию в...

Сортировка пузырьком с++ - C++
Сортировка пузырьком, все работает, но помогите поменять ввод цифр в ручную на ввод цифр рандома (от -100 до +100). #include &lt;iostream&gt; ...

Сортировка пузырьком - C++
Привет всем. Проверьте программу, пожалуйста. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; int n, i, j, t; void sort( int a, int n,...

Сортировка пузырьком - C++
Правильно ли организую ввод размера массива через клавиатуру?Если неправильно-то как? #include &lt;stdio.h&gt;; #include &lt;stdlib.h&gt;; ...

Сортировка пузырьком - C++
Задача: При диспансеризации школьников определялись их рост и вес. В результате были получены массивы значений роста R(n) и веса W(n)....

Сортировка пузырьком - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #define M 10 void main() { int i,j,n,k; int m; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
Заблокирован
30.05.2013, 06:40     Сортировка пузырьком #2
строка 28. Какое условие выхода из цикла?

Добавлено через 2 минуты
строка 40 -- p->next устанавливается в нуль постоянно.

Добавлено через 1 минуту
тяжело читать. Это не список.
warwar123
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 3
20.06.2013, 10:21  [ТС]     Сортировка пузырьком #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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// spisok.cpp : Defines the entry point for the console application.
//
 
#include <iostream>
#include <conio.h>
 
 
struct Item
{
int info;
Item* next;
};
 
 
 
main()
{
 
Item *first = NULL;
Item *p;
 
int i;
 
 
for (;;)
{
 
cin >> i;
 
if (i==0) break;
 
 
p = new Item;
p->info = i;
 
 
p->next = first;
first = p;
}
 
 
//1111
 
 
Item *q;
 
for(int i=0;i<100;i++)
{
 
p = first;
 
while (p)
{
 
    if((p->info)>(p->next->info))
    {
 
         q=p;
 
         p=p->next;
 
        p->next=q;
 
    }
 
p = p->next;
 
 
}
 
}
 
 
//2222
 
 
 
 
p = first;
while (p) {
cout << p->info << " ";
p = p->next;
}
 
 
while (first)
{
p = first;
first = first->next ;
delete p;
}
 
getch();
 
}
Проверял, все кроме сортировки работает правильной, в 40 строке не должно быть проблем

Сортировка идет после комментария //1111
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
20.06.2013, 10:29     Сортировка пузырьком #4
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
#include <iostream>
#include <list>
#include "sort.hpp"
 
using namespace std;
 
int main()
{
    typedef list<int> DataType;
    int myints[] = {16,2,77,29,45,98,12,23,78,55};
    DataType a(myints, myints + sizeof(myints) / sizeof(int) );
 
    for(DataType::iterator i = a.begin(); i != a.end();++i){
        cout << *i << " ";
    }
    cout << endl;
    DataType::iterator start(a.begin()), finish(a.end());
    Odd_even_sort(start,finish);
    for(DataType::iterator i = a.begin(); i != a.end();++i){
        cout << *i << " ";
    }
    cout  << "\a" << endl;
 
    return 0;
}

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
//файл
#ifndef SORT_HPP_INCLUDED
#define SORT_HPP_INCLUDED
using namespace std;
template<class iter>
void Odd_even_sort(iter& start, iter& finish){
bool sorted = false;
while(!sorted){
    sorted=true;
    iter finish1(finish), start1;
    --finish1;
 
    for(iter i = start; i != finish1; ++i){
         start1=i;
         ++start1;
        if( *i > *start1 ){
            swap(*i,*start1);
            sorted = false;
        }
        }
 
}
}
 
#endif // SORT_HPP_INCLUDED
warwar123
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 3
20.06.2013, 10:42  [ТС]     Сортировка пузырьком #5
Тоесть, надо то что после //файл, положить в отдельный файл и он подключается #include "sort.hpp"

Но если так, то выдаются ошибки:
Миниатюры
Сортировка пузырьком  
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
20.06.2013, 10:54     Сортировка пузырьком #6
Новая папка.rar
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2013, 10:58     Сортировка пузырьком
Еще ссылки по теме:

Сортировка Пузырьком :) - C++
Привет, ребята :) Вообщем, наткнулся на написание программы с использованием сортировки пузырьком. Никогда не использовал :) Часть кода...

Сортировка пузырьком - C++
Требуется отсортировать пузырьком элементы массива, которые находятся на непарных позициях.

Сортировка пузырьком - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;ctime&gt; using namespace std; void Sort(int *, int); const int n = 8; int ...

Сортировка пузырьком - C++
Всем доброго времени суток. Помогите пожалуйста написать программу сортировки пузырьком в соответствии с данной блок-схемой.

Сортировка пузырьком - C++
Всем доброго времени суток! Я новичек в С++.У меня глупая ситуация: недавно написал код сортировки на C++, и сегодня решил...


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

Или воспользуйтесь поиском по форуму:
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
20.06.2013, 10:58     Сортировка пузырьком #7
за + извеняюсь в последних строков в файле

Добавлено через 51 секунду
Будешь должен)
Yandex
Объявления
20.06.2013, 10:58     Сортировка пузырьком
Ответ Создать тему
Опции темы

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