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

Отсортировать массив с помощью сортировки методом вставки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Исходники виртуальной машины http://www.cyberforum.ru/cpp-beginners/thread347235.html
Здравствуйте! ни у кого случаем нет исходников какой либо виртуальной машины? очень нужно.. хотя бы самый простой.. чтобы около 50 команд
C++ Наследование классов Здравствуйте. Помогите пожалуйста решить проблему по наследованию классов. Есть базовый класс class parent { protected: int x; public: void Fill() { x = 5; } http://www.cyberforum.ru/cpp-beginners/thread347200.html
Ошибка при компиляции C++
Доброго дня! Есть код: char str; DWORD buf = sizeof(str); Работает отлично, но мне нужно сделать несколько переменных и я решил запихать это все в массив: char str; DWORD buf; buf = sizeof(str);
C++ Работа с классом string в C++
Как прочитать данные из файлы в строковую переменную string?
C++ Подскажите литературу теорию и практику по написанию исходного кода на С++ http://www.cyberforum.ru/cpp-beginners/thread347074.html
Подскажите литературу теорию и практику по написанию исходного кода на С++. Если есть с подробным разбором текста по строкам, как и что с чем взаимодействует и какой результат получается пошагово!? Желательно в области сетей, интернета, игр.
C++ Как передать массив в функцию не указывая размер Хочу сделать функцию для сортировки массивов с разным размером как передать массив в функцию не указывая его размер ? подробнее

Показать сообщение отдельно
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
01.09.2011, 18:34     Отсортировать массив с помощью сортировки методом вставки
Позволю себе наглость предложить ещё вариант:

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 <stdlib.h>
#include <time.h>
 
#define ROWS    5  /* строк в матрице */
#define COLS    12 /* столбцов в матрице */
 
int array[ ROWS ][ COLS ];
 
void out_array_2d( int * begin, int * end, int columns )
{
    int i = 0;
 
    do
       printf( "%2d%c", *begin, ! ( ++i % columns ) ? '\n' : ' ' );
    while( ++begin != end );
}
 
void sort_array( int * begin, int * end )
{
    int *it, *it2;
    for( it = begin + 1; it != end; it++ )
    {
        for( it2 = it; it2 != begin && *it2 < *(it2 - 1); it2-- )
        {
            int tmp = *(it2 - 1);
            *(it2 - 1) = *it2;
            *it2 = tmp;
        }
    }
}
 
int main( int argc, char * argv[] )
{
    srand( time(0) );
 
    int * it;
 
    for( it = &array[0][0]; it != &array[ ROWS - 1 ][ COLS ]; it++ )
       *it = rand() % 99;
 
    puts( "Random array:" );
    out_array_2d( &array[0][0], &array[ ROWS - 1 ][ COLS ], COLS );
 
    sort_array( &array[0][0], &array[ ROWS - 1 ][ COLS ] );
 
    puts( "\nSorted array:" );
    out_array_2d( &array[0][0], &array[ ROWS - 1 ][ COLS ], COLS );
 
    return 0;
}
 
Текущее время: 12:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru