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

помогите сделать сортировку массива. - C++

Восстановить пароль Регистрация
 
nail25
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 11
29.10.2011, 01:11     помогите сделать сортировку массива. #1
есть вектор(одномерный массив). из рандомного числа элементов, и рандомными элементами от 0 до 100.

вывод такого массива.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include "iostream"
#include "time.h"
using namespace std;
 
 
int main()
{   srand(time(0));
    setlocale (0,"rus");
    system("cls");
    int N;
    int A[1000];
    int B[100][10];
    int i,j;
    N=rand()%70+30;
    cout<<"Количество элементов массива: "<<N<<endl;
    
    for (i=0;i<N;i++)
    {
        A[i]=rand()%100;
        cout<<A[i]<<" ";
        }
    cout<<endl<<endl;
нужно сделать сортировку массива. представить в виде двумерного. заполненного таким образом, в первом столбце идут числа меньше 10, во втором меньше 20 и т.д. Так чтобы заполнение шло снизу вверх.
Миниатюры
помогите сделать сортировку массива.  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2011, 01:11     помогите сделать сортировку массива.
Посмотрите здесь:

не могу сделать сортировку C++
База данных. Помогите доработать сортировку! C++
Помогите решить задачу на Сортировку массива. (очень срочно, нужно на завтра) C++
Запомнить данные в классе в виде массива слов. Помогите - не код, а совет как сделать. C++
Вычислить произведение элементов массива и произвести сортировку массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
29.10.2011, 06:59     помогите сделать сортировку массива. #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
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 "stdafx.h"
#include "iostream"
#include "time.h"
using std::cin;
using std::cout;
using std::endl;
 
#include <iomanip>
using std::setw;
 
void addToTwoDemArray(int a[], int aSize){  
    int b[10][10];
    int j;
    for(int i = 0; i < aSize; ++i){
        if(i == 0){
            j = 0;
        }else if(a[i-1]/10 < a[i]/10){
            j = 0;
        }
        if(j<=9){
            b[(a[i]/10)][9-j] = a[i];
            j++;
        }
    }
 
    for(int k = 0; k < 10; ++k){
        for(int l = 0; l < 10; ++l){
            if(b[l][k] >= 0 && b[l][k] < 100){
                cout << setw(3) << b[l][k] << " ";
            } else {
                cout << setw(4) << " ";
            }
        }
        cout << endl;
    }
}
 
void sortA(int a[], int arraySize){
 
    int tempNum;
 
    for(int i = 1; i < arraySize; i++){
        tempNum = a[i];                                 
        int next = i;                                           
 
        while(next >0 && (a[next-1] > tempNum)){   
            a[next] = a[next-1];                   
            next--;                                       
        }
        a[next] = tempNum;                        
    }
}
 
 
 
int main() {   
    int n;
    const int bRows = 10;
    const int bColumns = 10;
    int a[100];
    int i;
 
    srand(time(NULL));
    setlocale (0,"rus");
    system("cls");
 
    n=rand()%70+30;
 
    cout<<"Количество элементов массива: "<<n<<endl;
 
    for (i=0;i<n;i++){
        a[i]=rand()%100;
        cout<<a[i]<<" ";
    }
    cout<<endl<<endl;
 
    sortA(a,n);
    for (i=0;i<n;i++){
        cout<<a[i]<<" ";
    }
    cout<<endl<<endl;
 
    addToTwoDemArray(a,n);
    cin.get();
    return 0;
}
cpld
1 / 1 / 0
Регистрация: 28.10.2011
Сообщений: 7
29.10.2011, 10:40     помогите сделать сортировку массива. #3
Нужно одномерный массив A сначала отсортировать, затем завести еще один одномерный (!)
массив B на 10 (!) элементов, пройтись по массиву A и занести в B индексы тех элементов
массива A, где происходит переход от десятка к десятку. Это минимальное количество
нужной информации (для диапазона 0-100).
Если Вам нужен именно такой двумерный массив, как Вы указали, то тут возможны варианты.
nail25
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 11
29.10.2011, 14:58  [ТС]     помогите сделать сортировку массива. #4
здорово. спасибо большое!
Yandex
Объявления
29.10.2011, 14:58     помогите сделать сортировку массива.
Ответ Создать тему
Опции темы

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