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

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

Войти
Регистрация
Восстановить пароль
 
Visual C
0 / 0 / 0
Регистрация: 18.05.2011
Сообщений: 8
#1

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

12.09.2011, 12:22. Просмотров 396. Ответов 8
Метки нет (Все метки)

Есть прога:
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <iostream>
#include <conio.h>
using namespace std;
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{const int n=10;
        int a[n]={2, 56, 78, 6, 93, 4, 33, 71, 61, 50};
        int i,j,y;
        int k=0;
 
        for(i=1;i<n-1;i++)
        {
         for(j=n-1;j>i-1;j--)
                if(a[j-1]>a[j])
                {
                y=a[j];
                a[j]=a[j-1];
                a[j-1]=y;
                }
                k++;
        }
        cout<<"Chislo shagov:"<<k<<endl;
        getch();
        return 0;
}
//---------------------------------------------------------------------------
Нужно сделать так, чтобы программа не делала лишних шагов. Т.е. если в массиве все элементы расставить по порядку то к(число шагов) должно быть 0.

Добавлено через 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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <iostream>
#include <conio.h>
using namespace std;
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{const int n=10;
        int a[n]={2, 56, 78, 6, 93, 4, 33, 71, 61, 50};
        int i,j,y;
        int k=0;
 
        for(i=1;i<n-1;i++)
        {
         for(j=n-1;j>i-1;j--)
                if(a[j-1]>a[j])
                {
                y=a[j];
                a[j]=a[j-1];
                a[j-1]=y;
                }
                k++;
        }
        cout<<"Chislo shagov:"<<k<<endl;
        for(i=0;i<n;i++)
        {
        cout<<a[i]<<"  ";
        }
        getch();
        return 0;
}
//---------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2011, 12:22     Сортироввка пузырьком.
Посмотрите здесь:

Сортировка пузырьком - C++
Здравствуйте! Решаю задачу:пользователь вводит слова через пробел,я должен вывести их в алфавитном порядке.Моя проблема в сортировке.Что...

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

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

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

сортировка пузырьком - C++
#include &lt;iostream&gt; using namespace std; void main() { const n=4; int a,i,j,buffer; for(i=0;i&lt;n;i++) cin&gt;&gt;a; for (i=0;...

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
voral
411 / 391 / 51
Регистрация: 16.03.2008
Сообщений: 1,933
12.09.2011, 13:18     Сортироввка пузырьком. #2
Тегами форматирования слабо оформить код?

Цитата Сообщение от Visual C Посмотреть сообщение
Нужно сделать так, чтобы программа не делала лишних шагов. Т.е. если в массиве все элементы расставить по порядку то к(число шагов) должно быть 0.
Это как? В приведённом выше коде k считает сколько раз сравнили. Чтобы оно осталось равным 0 мы должны НЕ выполнить ни одного сравнения. Единственный шанс вести отсортированный массив. И тогда нам не нужен алгоритм сортировки. Если же массив на входе может быть любым, то мы должны каждое число хотябы раз сравнить с другим.

Добавлено через 3 минуты
Поправка. k - это не число сравнений. Сравнений больше чем k.

Добавлено через 3 минуты
Или вам надо значть число перестановок? Тогда так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main(int argc, char* argv[])
{
  const int n=10;
  int a[n]={2, 56, 78, 6, 93, 4, 33, 71, 61, 50};
  int i,j,y;
  int k=0;
 
  for(i=1;i<n-1;i++)
  {
     for(j=n-1;j>i-1;j--)
         if(a[j-1]>a[j])
         {
            y=a[j];
                            a[j]=a[j-1];
                             a[j-1]=y;
            k++;
         }
  }
  cout<<"Chislo shagov:"<<k<<endl;
  getch();
  return 0;
}
Dani
1278 / 636 / 56
Регистрация: 11.08.2011
Сообщений: 2,277
Записей в блоге: 2
Завершенные тесты: 1
12.09.2011, 17:29     Сортироввка пузырьком. #3
если проверять массив на упорядоченость, потеряем больше времени
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
12.09.2011, 22:52     Сортироввка пузырьком. #4
Что же многих так на пузырьковую сортировку тянет. Это не хорошая сортировка. Ну если уж нужна, то хоть без лишних шагов:
Пузырьковая сортировка
или сделайте из нее шейкерную, все же лучше
Dani
1278 / 636 / 56
Регистрация: 11.08.2011
Сообщений: 2,277
Записей в блоге: 2
Завершенные тесты: 1
13.09.2011, 00:10     Сортироввка пузырьком. #5
лучше использовать встроенную: быстрая (довольно) и писать не надо.
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
13.09.2011, 00:14     Сортироввка пузырьком. #6
Цитата Сообщение от Dani Посмотреть сообщение
лучше использовать встроенную: быстрая (довольно) и писать не надо.
Так и не спорит никто. Не понятно почему пузырьковая так привлекает людей.
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
13.09.2011, 00:18     Сортироввка пузырьком. #7
Цитата Сообщение от Thinker Посмотреть сообщение
Не понятно почему пузырьковая так привлекает людей.
Каких людей ? Студентов, в которых она попалась как задание в лабораторной ? Это не показатель.
Dani
1278 / 636 / 56
Регистрация: 11.08.2011
Сообщений: 2,277
Записей в блоге: 2
Завершенные тесты: 1
13.09.2011, 00:21     Сортироввка пузырьком. #8
Цитата Сообщение от asics Посмотреть сообщение
Не понятно почему пузырьковая так привлекает людей.
Думаю, студентов от написания сортировки ташнит (если не пузырьковая). Были нас на паскале заставили qsort рекурскивную учить... Помнил целых 3 дня
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2011, 00:26     Сортироввка пузырьком.
Еще ссылки по теме:

Сортировка пузырьком - C++
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #define N 9 ...

Сортировка пузырьком - C++
Нужно отсортировать два динамических массива методом пузырька. Не могу понять в чем ошибка, помогите пожалуйста. #include &quot;stdafx.h&quot; ...

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

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

Сортировка пузырьком - 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; ...


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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
13.09.2011, 00:26     Сортироввка пузырьком. #9
Цитата Сообщение от asics Посмотреть сообщение
Каких людей ? Студентов, в которых она попалась как задание в лабораторной ? Это не показатель.
Тех людей, в частности, которые обращаются за помощью сюда с этой сортировкой. Ну, по поводу "привлекает", может погорячился
Yandex
Объявления
13.09.2011, 00:26     Сортироввка пузырьком.
Ответ Создать тему
Опции темы

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