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

Функция для сортировки массива пузырьком - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 96, средняя оценка - 4.88
zloy-
0 / 0 / 1
Регистрация: 16.10.2010
Сообщений: 33
17.10.2010, 12:53     Функция для сортировки массива пузырьком #1
Всем огромное спасибо! помогли и примеры что надо. Всем удачи!

Добавлено через 11 часов 30 минут
Всем добрый день. Прошу помочь в написании функции для сортировки массива пузырьком.
Чтоб она работала так: Я вводил количество элементов одномерного массива(она рандомно генерировала его элементы), а она с помощью функции их сортировала и выводила на экран.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2010, 12:53     Функция для сортировки массива пузырьком
Посмотрите здесь:

Написать функцию сортировки пузырьком массива C++
Ошибка сортировки пузырьком C++
функция сортировки двумерного массива C++
Функция сортировки массива в структуре C++
Функция сортировки массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
17.10.2010, 13:21     Функция для сортировки массива пузырьком #2
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
#include <iostream>
#include <ctime>
 
void SortMass(int* m, int n)
{
     for(int i = n - 1; i >= 1; i--)
       for(int j = 0; j < i; j++)
       {
               if(m[j] > m[j+1])
               {
                       int foo = m[j];
                       m[j] = m[j+1];
                       m[j+1] = foo;
               }
       }  
}
 
int main ()
{
    std::cout << "Bedute n: ";
    int n = 0;
    int* m;
    std::cin >> n;
    m = new int[n];
    srand(time(0));
    for(int i = 0; i < n; i++)
    {
            int x = rand()%100;
            m[i] = x;
            std::cout << m[i] << ' ';
    }
    std::cout << std::endl;
    SortMass(m, n);
    std::cout << "After sort" << std::endl;
    for(int i = 0; i < n; i++)
      std::cout << m[i] << ' ';
    std::cin.get();
    std::cin.get();
}
Так ?
zloy-
0 / 0 / 1
Регистрация: 16.10.2010
Сообщений: 33
17.10.2010, 14:06  [ТС]     Функция для сортировки массива пузырьком #3
А можно через stdio.h( т.е. стандартны ввод и вывод)
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
17.10.2010, 14:16     Функция для сортировки массива пузырьком #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
39
#include <stdio.h> 
#include <time.h>
#include <conio.h>
#include<stdlib.h>
 
void Sort(int n, int * Arr);
 
int main() 
{ 
srand(time(0));
int n; 
printf("Enter size \n");  scanf("%d",&n);
int * Arr = new int[n];
for(int i = 0;i < n;++i){
    Arr[i] = rand()%20;
    printf("%d ",Arr[i]);
}
printf("\n");
Sort(n,Arr);
for(int i = 0;i < n;++i) printf("%d ",Arr[i]);
 
getch();
return 0;
} 
 
void Sort(int n, int * Arr)
{
    int t;
    for(int i = 0;i < n-1;){
        if(Arr[i] > Arr[i+1]){
            t = Arr[i];
            Arr[i] = Arr[i+1];
            Arr[i+1] = t;
            i = 0;
            continue;
        }
        ++i;
    }
}
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
17.10.2010, 14:35     Функция для сортировки массива пузырьком #5
NikolaWhite, Разве в Си есть new ?

Добавлено через 2 минуты
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 <stdio.h>
#include <time.h>
#include <conio.h>
#include <stdlib.h>
 
void SortMass(int*, int);
 
int main (void)
{
    int N = 0;
    printf("Enter N: ");
    scanf("%d", &N);
    int* m = (int*)malloc(N);
    srand(time(0));
    for(int i = 0; i < N; i++)
    {
            int x = rand()%100;
            m[i] = x;
            printf(" %d ", m[i]);
    }
    printf("\n");
    SortMass(m, N);
    printf("After sort\n");
    for(int i = 0; i < N; i++)
      printf(" %d ", m[i]);
    free(m);  
    getch();
}
 
void SortMass(int* m, int n)
{
     for(int i = n - 1; i >= 1; i--)
       for(int j = 0; j < i; j++)
       {
               if(m[j] > m[j+1])
               {
                       int foo = m[j];
                       m[j] = m[j+1];
                       m[j+1] = foo;
               }
       }  
}
zloy-
0 / 0 / 1
Регистрация: 16.10.2010
Сообщений: 33
17.10.2010, 14:58  [ТС]     Функция для сортировки массива пузырьком #6
Asics^, Все работает! Спс. А можно если не трудно еще какую-нибудь альтернативу пузырьковой ( без разницы какой) ?
dihlofos
Бродяга
 Аватар для dihlofos
302 / 256 / 17
Регистрация: 27.08.2010
Сообщений: 553
17.10.2010, 15:42     Функция для сортировки массива пузырьком #7
На любой вкус и цвет)) Сортировки(всякие!)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2016, 21:42     Функция для сортировки массива пузырьком
Еще ссылки по теме:

C++ Написать программу для сортировки массива способами шелла вставки слияния и пузырьком
Оптимизация сортировки пузырьком C++
C++ Функция сортировки массива

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

Или воспользуйтесь поиском по форуму:
Ascolon
4 / 4 / 2
Регистрация: 29.11.2014
Сообщений: 197
27.11.2016, 21:42     Функция для сортировки массива пузырьком #8
ясно
Yandex
Объявления
27.11.2016, 21:42     Функция для сортировки массива пузырьком
Ответ Создать тему
Опции темы

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