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

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

Войти
Регистрация
Восстановить пароль
 
SexPistols
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 14
#1

Отсортировать половину массива - C++

31.03.2010, 07:21. Просмотров 305. Ответов 1
Метки нет (Все метки)

Отсортировать половину массива размером 20 методом вставок, а вторую половину – методом пузырьков.
Только вот что такое метод пузырьков я совсем не понел.... как и с чем его есть, ктото может обьяснить?
И как применить етот метод пузырьков в данной ситуации?
P.S.>> Подскажите какую нибудь хорошую литератуту (под словом "хорошую" я имел в виду понятную человеку который не разбераеться в програмировании) для того чтобы превратиться из нубо-програмиста в ламо-програмиста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2010, 07:21     Отсортировать половину массива
Посмотрите здесь:

Отсортировать первую половину массива по возрастанию, а вторую по убыванию - C++
Программа не работает, помогите найти ошибку #include <cstdlib> #include <iostream> using namespace std; int irand(int a,int b)...

Отсортировать первую половину массива по возрастанию, а вторую по убыванию - C++
Дан массив из четного числа элементов. Отсортировать первую половину этого массива по возрастанию, а вторую по убыванию. Как мне решить эту...

Как скопировать одну половину массива (количество элементов массива четноё) в другую? - C++
Допустим, есть массив с чётным количеством элементов. Каким образом я могу скопировать первую половину массива (то есть первые 5 элементов)...

Передать в массив I(5) вторую половину массива J(10). - C++
помогите:Передать в массив I(5) вторую половину массива J(10).

Поменять местами первую и вторую половину массива. - C++
Помогите решить задачки!!! 1) Дан массив размера n. Поменять местами первую и вторую половину массива. 2)Дана матрица размера mхn.Найти...

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

Заполнить первую половину двумерного массива единицами, а вторую нулями - C++
дано два масиви дійсних чисел заповнити першу половину двомірного масиву розмірності n x n одиницями а другу 0. Даны 2 массива...

Функция сортирующая первую половину массива по убыванию, а вторую - по возрастанию - C++
Написать функцию, которая сортирует первую половину массива по убыванию, а вторую - по возрастанию, используя сортировку простыми...

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

Первую половину массива P переписать в массив R, а вторую в массив Q - C++
Помогите нужно написать программу С++ Задан массив целых чисел P(n). Первую половину массива P(n) переписать в массив R, а вторую в...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
31.03.2010, 10:23     Отсортировать половину массива #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
43
44
45
46
47
48
49
50
#include <cstdlib>
#include <iostream>
#include <iterator>
 
// Сортировка методом пузырька
template <typename array>
void sort_bubble_up(array * a, int l, int r)
{
    for(int i = l; i < r; i++)
        for(int j = r; j > i; j--)
            if(a[j-1] > a[j])
                std::swap(a[j-1], a[j]);
}
// Сортировка методом вставок
template <typename array>
void sort_insert_up(array * a, int l, int r)
{
    int i = 0;
    for(i = r; i > l; i--)
        if(a[i-1] > a[i])
            std::swap(a[i-1], a[i]);
    for(i = l + 2; i <= r; i++)
    {
        int j = i;
        array v = a[i];
        while(v < a[j-1])
        {
            a[j] = a[j-1];
            j--;
        }
        a[j] = v;
    }
}
    
int main()
{
    int size = 20;
    int a[size];
    
    for(int i = 0; i < size; ++i)
        a[i] = rand() % 9;
        
    std::copy(a, a+size, std::ostream_iterator<int>(std::cout, ", "));
    std::cout << std::endl;
    
    sort_insert_up(a, 0, size/2 - 1);
    sort_bubble_up(a, size/2, size - 1);
    
    std::copy(a, a+size, std::ostream_iterator<int>(std::cout, ", "));
}
Код
5, 8, 7, 4, 8, 1, 3, 0, 7, 2, 8, 2, 7, 6, 7, 5, 7, 8, 3, 0,
0, 1, 2, 3, 4, 5, 7, 7, 8, 8, 0, 2, 3, 5, 6, 7, 7, 7, 8, 8,
Yandex
Объявления
31.03.2010, 10:23     Отсортировать половину массива
Ответ Создать тему
Опции темы

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