Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

сортировка методом попарной перестановки("методом пузырька")(C++)

19K
20 мая 2008 года
Paradoxek
45 / / 24.10.2007
При каждом последовательном просмотре массива сравниваются соседние числа. Если числа в паре расположены в порядке возрастания, оставляем их без изменения; в противном случае меняем их местами.Затем (в любом случае) переходим к следующей паре.Сортировка считается оконченной, если в ходе просмотра не была произведена ни одна перестановка. В результате на первом шаге процесса(после первого просомтра) на последнее место в массиве из N чисел ставим самое большое число и при следующем числе массива анализируется (N-1) чисел, при третьем просмотре (N-2) чисел и т.д. Таким образом сокращается время упорядочения.

нужна программа на С++ которая выполняет сортировку таким методом, массив из из 8 чисел, тоесть N=8
4.7K
20 мая 2008 года
bobik02
140 / / 11.09.2007
как то так:
Код:
int tmp;
   for(int i = 0; i <= m-1; i++)
   {
      for( int j = 0; j <= m-2-i; j++)
      {
          if( arrayZ[j] > arrayZ[j+1] )
          {
              tmp = arrayZ[j];
              arrayZ[j] = arrayZ[j+1];
              arrayZ[j+1] = tmp;
          }
      }
  }
2.0K
20 мая 2008 года
BroKeR
163 / / 04.05.2006
Вот
Код:
template <class T >
inline void swap (T array[], int pos1, int pos2) {
    T temp;
    temp=array[pos1];
    array[pos1]=array[pos2];
    array[pos2]=temp;
}

template <class T>
inline void print(T array[],int size) {
    for (int i=0;i<size;++i) cout<<array<<" ";
}

template <class T>
inline void bubble_sort(T array[], int size) {
    int i,j;
    for (i=0;i<size-1;++i)
        for (j=size-1;j>i;--j)
            if (array[j-1]>array[j]) swap(array,j-1,j);
}

int main()
{
    int k;
    int array[]={4,2,6,5,8,9,1,3,7};
    print(array,9);
    bubble_sort(array,9);
    print(array,9);
    cout<<endl;
    cin>>k;
    return 0;
}
72K
02 июля 2011 года
Yashman
2 / / 01.07.2011
Я придумал более совершенный способ (программа просит ввода, с каким количеством чисел работать и сортирует от наименьшего к наибольшему).

Код:
#include <iostream>

using namespace std;

int main()
{
    cout << "How many numbers do you wish me to work with? ";
    int n;
    cin >> n;
    double array[n-1];
    cout << "Enter these " << n << " values: ";
    for (int i = 0; i < n; i++)
     cin >> array;
   
   double x = 0.0;
   
   for (int a = 0; a < n; a++)
    {
        for (int b = 1; b+a < n; b++)
        {
            if (array[a] > array[b+a])
              {
                         x = array[a];
                         array[a] = array[b+a];
                         array[b+a] = x;
              }
        }
    }
   
    cout << "Numbers from the smallest to the largest:" << endl;
    for (int i = 0; i < n; i++)
    cout << array << endl;
     
       
    system ("PAUSE");
    return 0;
}
72K
15 июля 2011 года
Kopral
12 / / 01.07.2011
Первый пост самый разумный. На первом курсе такая же проблема была, благо код был приведен в моей книге)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог