Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.81/32: Рейтинг темы: голосов - 32, средняя оценка - 4.81
yuliyayuliya28
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
1

Пузырьковая сортировка

02.04.2011, 13:49. Просмотров 5744. Ответов 9
Метки нет (Все метки)

Здравствуйте хочу разобраться в сортировках....нашла пример в книге.....но почему то она не работает....если не сложно объясните ошибки.спасибо

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
// пузырьковая сортитровка.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <conio.h>
#include "iostream"
 
using namespace std;
 
int main()
{
    int array[100],size,temp,x,y,i;
    cin>>size;
for(x=0;x<size;x++)
cin>>array[x];
for(x=0;x<size-1;x++)
for(y=x+1;y<size;--y)
if (array[x]>array[y])
{
    temp=array[x];
    array[x]=array[y];
    array[y]=temp;
}
for(i=0;i<size;i++)
cout<<array[i]<< " ";
_getch();
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2011, 13:49
Ответы с готовыми решениями:

Пузырьковая сортировка
Здравствуйте .Объясните , пожалуйста , подробно , как работает пузырьковая...

Пузырьковая сортировка
Есть курсовик. Есть пузырьковая сортировка Есть одно НО. Сортировка должна...

Пузырьковая сортировка
Помогите плз. Работаю в Visual Studio 2010. Написал алгоритм пузырьковой...

Сортировка пузырьковая
Привет всем!помогите отсортировать задачку. #include &lt;iostream&gt; #include...

Пузырьковая сортировка
Написал программу сортировки методом пузырька: #include &lt;stdio.h&gt; #include...

9
Unforgiven_00
60 / 60 / 17
Регистрация: 12.10.2010
Сообщений: 129
02.04.2011, 14:02 2
Цитата Сообщение от yuliyayuliya28 Посмотреть сообщение
Здравствуйте хочу разобраться в сортировках....нашла пример в книге.....но почему то она не работает....если не сложно объясните ошибки.спасибо

// пузырьковая сортитровка.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <conio.h>
#include "iostream"

using namespace std;

int main()
{
int array[100],size,temp,x,y,i;
cin>>size;
for(x=0;x<size;x++)
cin>>array[x];
for(x=0;x<size-1;x++)
for(y=x+1;y<size;--y)
if (array[x]>array[y])
{
temp=array[x];
array[x]=array[y];
array[y]=temp;
}
for(i=0;i<size;i++)
cout<<array[i]<< " ";
_getch();

return 0;
}
C++
1
2
3
4
5
6
7
8
for(x=0;x<size-1;x++)
for(y=x+1;y<size;++y)
if (array[x]>array[y])
{
    temp=array[x];
    array[x]=array[y];
    array[y]=temp;
}
2
vitaska
90 / 90 / 15
Регистрация: 04.02.2010
Сообщений: 162
02.04.2011, 14:12 3
строка 6: должно быть записано так #include <iostream> (стандартные библиотеки желательно указывать в угловых скобках)
строка 17: замените декремент --y на инкремент ++y

Возможно прийдется еще удалить сроку #include "stdafx.h" (если с ней работать не будет).
1
Fafle
34 / 34 / 9
Регистрация: 19.03.2010
Сообщений: 136
02.04.2011, 14:14 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
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
template <class T>
void bubbleSort(T a[], long size){
    long i, j;
    T x;
    for(i=0;i<size;i++){            // i - номер прохода
        for(j=size-1;j>i;j--){     // внутренний цикл прохода
            if(a[j-1]>a[j]){
                x=a[j-1];
                a[j-1]=a[j];
                a[j]=x;
            }
        }
    }
}
 
void main(){
    srand(time(NULL));
    const long SIZE=10;
    int ar[SIZE];
    
    // до сортировки
    for(int i=0;i<SIZE;i++){
        ar[i]=rand()%100;
        cout<<ar[i]<<"\t";
    }
    cout<<"\n\n";
    bubbleSort(ar,SIZE);
 
    // после сортировки
    for(int i=0;i<SIZE;i++){
        cout<<ar[i]<<"\t";
    }
    cout<<"\n\n";
}
1
yuliyayuliya28
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
02.04.2011, 14:17  [ТС] 5
Цитата Сообщение от Unforgiven_00 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
for(x=0;x<size-1;x++)
for(y=x+1;y<size;++y)
if (array[x]>array[y])
{
    temp=array[x];
    array[x]=array[y];
    array[y]=temp;
}
Спасибо большое.....только получается одна проблема......он ставит все цифры правильно кроме последней......
0
Миниатюры
Пузырьковая сортировка  
yuliyayuliya28
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
02.04.2011, 14:28  [ТС] 6
Цитата Сообщение от vitaska Посмотреть сообщение
строка 6: должно быть записано так #include <iostream> (стандартные библиотеки желательно указывать в угловых скобках)
строка 17: замените декремент --y на инкремент ++y

Возможно прийдется еще удалить сроку #include "stdafx.h" (если с ней работать не будет).
вы не знаете как решить проблему?последний элемент не хочет участвовать в сортировке
0
Nameless One
Эксперт С++
5786 / 3435 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
02.04.2011, 14:30 7
Тут можно посмотреть реализацию алгоритма пузырьковой сортировки.
А вообще, если хочешь разобраться в принципе работы конкретного алгоритма, то не лишним будет нарисовать некоторый массив на бумаге, и пройти на бумаге все шаги алгоритма, наблюдая за тем, как меняется массив.
1
yuliyayuliya28
4 / 4 / 4
Регистрация: 06.03.2011
Сообщений: 319
02.04.2011, 14:40  [ТС] 8
Цитата Сообщение от Nameless One Посмотреть сообщение
Тут можно посмотреть реализацию алгоритма пузырьковой сортировки.
А вообще, если хочешь разобраться в принципе работы конкретного алгоритма, то не лишним будет нарисовать некоторый массив на бумаге, и пройти на бумаге все шаги алгоритма, наблюдая за тем, как меняется массив.
Большое спасибо очень полезная информация....как раз нужно разссмотреть все виды сортировки...
но вот что в этой не так не пойму.....
0
Fafle
34 / 34 / 9
Регистрация: 19.03.2010
Сообщений: 136
02.04.2011, 14:57 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main() {
    int temp;
    int array[10] = {51, 83, 75, 32, 57, 86, 24, 49, 18, 20};
    for (int x = 0; x < 9; x++)
        for (int y = x + 1; y < 10; ++y)
            if (array[x] > array[y]) {
                temp = array[x];
                array[x] = array[y];
                array[y] = temp;
            }
    for (int i = 0; i < 10; i++)
        cout << array[i] << " ";
}
Алгоритм ваш же, все работает отлично, ищите лишнее у вас
Возможно вы вводите size 99?
0
DexMipt
13 / 13 / 2
Регистрация: 13.03.2011
Сообщений: 98
02.04.2011, 15:05 10
а можно и так
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 <stdio.h>
#define SIZE 100
 
int main()
{
    int a[SIZE],i,n;
    int pass,hold;
 
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
 
    for(pass=1;pass<n;pass++){
        for(i=0;i<n-1;i++){
            if(a[i]<a[i+1]){
               hold=a[i];
               a[i]=a[i+1];
               a[i+1]=hold;
   }}}
 
   for(i=0;i<n;i++)
       printf("%d ", a[i]);
 
   return 0;
}
Вроде как короче )
0
02.04.2011, 15:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2011, 15:05

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

Пузырьковая сортировка
Дан одномерный массив целых чисел A. Напишите программу, которая упорядочит все...

пузырьковая сортировка
Задача не сложная, но у меня нет времени ее решать: дан одномерный массив,...


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

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

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