Форум программистов, компьютерный форум 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++ Как передать массив в функцию не указывая размер Хочу сделать функцию для сортировки массивов с разным размером как передать массив в функцию не указывая его размер ? подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
01.09.2011, 16:42     Отсортировать массив с помощью сортировки методом вставки
Экономил время и силы, поэтому код не отличается большой элегантностью, но как срочняк думаю пойдёт
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream.h>//i/o
#include <stdlib.h>  //srand   
 
//ГђГіГ±Г±ГЁГґГЁГЄГ*öèÿ
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='Вё')
            stream<<char(241);
        else if(*ps=='ВЁ')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
 
int GetRandNum(int NumMax);
void SortMass(int m, int n, int ** mass);
 
int main()
{
    char ch;
    int **mass,rows,cols,i,j;
    do
    {
        srand(0);
        cout<<"Ââåäèòå ÷èñëî ñòðîê Г¬Г*Г±Г±ГЁГўГ*\r\n";
        cin>>rows;
        cout<<"Ââåäèòå ÷èñëî ñòîëáöîâ Г¬Г*Г±Г±ГЁГўГ*\r\n";
        cin>>cols;
        cout<<"ÈñõîäГ*ûé Г¬Г*Г±Г±ГЁГў\r\n";
        mass = new int *[rows];
        for(i = 0; i < rows; i++)
        {
            mass[i] = new int[cols];
            for(j = 0; j < cols; j++)
                cout<<(mass[i][j] = GetRandNum(100))<<" ";
            cout<<"\r\n";
        }
        cout<<"ГЊГ*Г±Г±ГЁГў ïîñëå ñîðòèðîâêè\r\n";
        SortMass(rows, cols, mass);
        cout<<"Y - Г*îâûé ââîä\r\n";
        cin>>ch;
    }
    while(ch == 'Y' || ch == 'y');
    return 0;
}
 
int GetRandNum(int NumMax)
{
    int val = rand();
    while(NumMax < val)
        val = rand();
    return val;
}
 
void SortMass(int m, int n, int ** mass)
{
    int * vec = new int[m*n],buf;
    for(int i = 0,j,k = 0; i < m; i++)
    {
        for(j = 0; j < n; j++,k++)
            vec[k] = mass[i][j];
    }
    for(i = 0; i < m*n; i++)
    for(j = i; j < m*n; j++)
    {
        if(vec[i] < vec[j])
        {
            buf = vec[i];
            vec[i] = vec[j];
            vec[j] = buf;
        }
    }
    for(i = 0,k = 0; i < m; i++)
    {
        for(j = 0; j < n; j++,k++)
            cout<<(mass[i][j] = vec[k])<<" ";
        cout<<"\r\n";
    }
    delete [] vec;
}
[Результат работы]
Введите число строк массива
5
Введите число столбцов массива
6
Исходный массив
38 1 24 6 24 4
100 73 90 3 32 45
57 12 85 82 24 31
19 91 88 7 35 23
90 81 22 74 4 44
Массив после сортировки
100 91 90 90 88 85
82 81 74 73 57 45
44 38 35 32 31 24
24 24 23 22 19 12
7 6 4 4 3 1
Y - новый ввод

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