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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 45, средняя оценка - 4.84
yuliyayuliya28
4 / 4 / 0
Регистрация: 06.03.2011
Сообщений: 319
#1

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

02.04.2011, 13:49. Просмотров 5596. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пузырьковая сортировка (C++):

Пузырьковая сортировка - C++
Здравствуйте! Необходимо осуществить пузырьковую сортировку в столбцах двумерного массива. Но только сортировка должна быть среди...

Пузырьковая Сортировка - C++
Описать структуру с именем Train, содержащую следующие поля: Point (название пункта назначения), Number (номер поезда), Time (время...

Пузырьковая сортировка - C++
В чес дело не могу понять? Переменной массива с индексом X присваивается какое то левое значение. #include &lt;iostream&gt; #include...

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

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

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

9
Unforgiven_00
60 / 60 / 2
Регистрация: 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
85 / 85 / 2
Регистрация: 04.02.2010
Сообщений: 162
02.04.2011, 14:12 #3
строка 6: должно быть записано так #include <iostream> (стандартные библиотеки желательно указывать в угловых скобках)
строка 17: замените декремент --y на инкремент ++y

Возможно прийдется еще удалить сроку #include "stdafx.h" (если с ней работать не будет).
1
Fafle
34 / 34 / 4
Регистрация: 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 / 0
Регистрация: 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 / 0
Регистрация: 06.03.2011
Сообщений: 319
02.04.2011, 14:28  [ТС] #6
Цитата Сообщение от vitaska Посмотреть сообщение
строка 6: должно быть записано так #include <iostream> (стандартные библиотеки желательно указывать в угловых скобках)
строка 17: замените декремент --y на инкремент ++y

Возможно прийдется еще удалить сроку #include "stdafx.h" (если с ней работать не будет).
вы не знаете как решить проблему?последний элемент не хочет участвовать в сортировке
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
02.04.2011, 14:30 #7
Тут можно посмотреть реализацию алгоритма пузырьковой сортировки.
А вообще, если хочешь разобраться в принципе работы конкретного алгоритма, то не лишним будет нарисовать некоторый массив на бумаге, и пройти на бумаге все шаги алгоритма, наблюдая за тем, как меняется массив.
1
yuliyayuliya28
4 / 4 / 0
Регистрация: 06.03.2011
Сообщений: 319
02.04.2011, 14:40  [ТС] #8
Цитата Сообщение от Nameless One Посмотреть сообщение
Тут можно посмотреть реализацию алгоритма пузырьковой сортировки.
А вообще, если хочешь разобраться в принципе работы конкретного алгоритма, то не лишним будет нарисовать некоторый массив на бумаге, и пройти на бумаге все шаги алгоритма, наблюдая за тем, как меняется массив.
Большое спасибо очень полезная информация....как раз нужно разссмотреть все виды сортировки...
но вот что в этой не так не пойму.....
0
Fafle
34 / 34 / 4
Регистрация: 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 / 1
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2011, 15:05
Привет! Вот еще темы с ответами:

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

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

Пузырьковая сортировка - C++
Помогите исправить не сортирует массив.Еще должен считать кол-во шагов прохода цикла. #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include...

Пузырьковая сортировка - C++
Хочу спросить, это пузырьковая сортировка или нет? Как её правильно реализовать? Как оценить эффективность алгоритма сортировки по числу...


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

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

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