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

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

Восстановить пароль Регистрация
 
stimo15
148 / 111 / 38
Регистрация: 09.09.2011
Сообщений: 274
28.10.2012, 20:01     Пузырьковая сортировка #1
В чес дело не могу понять? Переменной массива с индексом X[1] присваивается какое то левое значение.

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
#include <iostream>
#include <stdio.h>
using namespace std;
 
int main()
{
    int x[100], i,j,n,tmp;
    cout<<"N="; cin>>n;
    tmp=0;
 
    for (i=0; i<n; i++)
    {
        cout<<"Enter ["<<i<<"] element: " ;
        cin>>x[i];
    }
    system("cls");
    cout<<"Massiv: \n";
 
    for (i=0; i<n; i++)
        cout<<"X["<<i<<"] = "<<x[i]<<endl;
 
    cout<<"Sortirovka puzirkem: \n";
 
    for (i=0; i<n-1; i++)
    {
        for (j=0; j<n-i; j++)
        {
        if (x[j]>x[j+1])
        {
            tmp=x[j+1];
            x[j+1]=x[j];
            x[j]=tmp;
        }
        }
    }
 
    for (i=0; i<n; i++)
        cout<<"X["<<i<<"]="<<x[i]<<endl;
 
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 20:01     Пузырьковая сортировка
Посмотрите здесь:

пузырьковая сортировка C++
Пузырьковая сортировка C++
C++ Пузырьковая Сортировка
C++ Пузырьковая сортировка
Сортировка пузырьковая C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
28.10.2012, 20:05     Пузырьковая сортировка #2
Левое в смысле вообще не из массива?
C++
1
for (j=0; j<n-i-1; j++)
надо проходить до предпоследнего, а не до последнего элемента, иначе последний элемент поменяется местами с n+1 ым
stimo15
148 / 111 / 38
Регистрация: 09.09.2011
Сообщений: 274
28.10.2012, 20:07  [ТС]     Пузырьковая сортировка #3
да, там что то типо -8696849
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
28.10.2012, 20:32     Пузырьковая сортировка #4
ну, я и говорю: сортировка выходит за пределы массива на 1 элемент и захватывает число -8696849, которое как самое малое отправляется в начало массива, а на его место ставится макс. элемент.
I_Masha_I
2 / 2 / 0
Регистрация: 14.10.2012
Сообщений: 53
28.10.2012, 20:53     Пузырьковая сортировка #5
вот работающая программа сортировки пузырьком

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
#include "StdAfx.h"
#include <cstdlib>
#include <iostream>
 
using namespace std;
double *creat(int &n)
{
    cout<<"n=";cin>>n;
double *a = new double[n];
for(int i=0; i<n; i++)
{cin>>a[i];}
return a;}
 
int main(int argc, char *argv[])
{
    int n, temp;
    double *a = creat(n);
    temp = 0;
    for(int i=0;i<n;i++)
    { 
        for(int j=0;j<n-1;j++)
        {
            if (a[j] > a[j+1])
            {
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
        cout<<a[i];
    }
    system("PAUSE");
    delete[] a;
    return 0;
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
28.10.2012, 21:11     Пузырьковая сортировка #6
Цитата Сообщение от I_Masha_I Посмотреть сообщение
вот работающая программа сортировки пузырьком
она хоть и работающая, но в ней нет той попытки оптимизировать алгоритм.
Yandex
Объявления
28.10.2012, 21:11     Пузырьковая сортировка
Ответ Создать тему
Опции темы

Текущее время: 16:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru