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

Указатели в массиве на сортировку - C++

Восстановить пароль Регистрация
 
PashaMorgan
0 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 13
23.12.2013, 00:59     Указатели в массиве на сортировку #1
Доброго,времени,прошу помочь переделать данный код под указатели.


Кликните здесь для просмотра всего текста

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
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
 
void choicesSort(int*, int); // ïðîòîòèï ГґГіГ*êöèè ñîðòèðîâêè
 
int main()
{
    srand(time(NULL));
    setlocale(LC_ALL, "rus");
    cout << "Ââåäèòå Г°Г*çìåð Г¬Г*Г±Г±ГЁГўГ*: ";
    int size; // äëèГ*Г*Г* Г¬Г*Г±Г±ГЁГўГ*
    cin >> size;
 
    int *mas = new int [size]; // îäГ*îìåðГ*ûé äèГ*Г*ìè÷åñêèé Г¬Г*Г±Г±ГЁГў
    for (int i = 0; i < size; i++)
    {
        mas[i] = rand() % 100; // Г§Г*ïîëГ*ГїГҐГ¬ Г¬Г*Г±Г±ГЁГў ñëó÷Г*Г©Г*ûìè Г·ГЁГ±Г«Г*ìè
        cout << setw(2) << mas[i] << "  "; // âûâîä Г¬Г*Г±Г±ГЁГўГ* Г*Г* ГЅГЄГ°Г*Г*
    }
    cout << "\n\n";
 
    choicesSort(mas, size); // âûçîâ ГґГіГ*êöèè ñîðòèðîâêè âûáîðîì
 
    for (int i = 0; i < size; i++)
    {
        cout << setw(2) << mas[i] << "  "; // ГЇГҐГ·Г*ГІГј îòñîðòèðîâГ*Г*Г*îãî Г¬Г*Г±Г±ГЁГўГ*
    }
    cout << "\n";
    delete [] mas; // âûñâîáîæäГ*ГҐГ¬ ГЇГ*ìÿòü
    system("pause");
    return 0;
}
 
void choicesSort(int* arrayPtr, int length_array) // ñîðòèðîâêГ* âûáîðîì
{
    for (int repeat_counter = 0; repeat_counter < length_array; repeat_counter++)
    {
        int temp = arrayPtr[0]; // âðåìåГ*Г*Г*Гї ïåðåìåГ*Г*Г*Гї äëÿ õðГ*Г*ГҐГ*ГЁГї Г§Г*Г*Г·ГҐГ*ГЁГї ïåðåñòГ*Г*îâêè
        for (int element_counter = repeat_counter + 1; element_counter < length_array; element_counter++)
        {
            if (arrayPtr[repeat_counter] > arrayPtr[element_counter])
            {
                temp = arrayPtr[repeat_counter];
                arrayPtr[repeat_counter] = arrayPtr[element_counter];
                arrayPtr[element_counter] = temp;
            }
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2013, 00:59     Указатели в массиве на сортировку
Посмотрите здесь:

C++ Указатели в двумерном массиве
в одномерном массиве произвести сортировку элементов по убыванию C++
Указатели в массиве C++
Указатели в двумерном массиве C++
Указатели в строчном массиве C++
C++ В одномерном массиве произвести сортировку элементов по убыванию
Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом C++
В динамическом массиве организовать двунаправленную экстремумную сортировку C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
23.12.2013, 01:40     Указатели в массиве на сортировку #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
//#include <stdlib.h>
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
 
void choicesSort(int*, int,bool (*compare)(int,int)); // прототип функции сортировки
bool from_min(const int a,const int b) //Проверка  условия
{
    return a>b;
}
 
int main()
{
    srand(time(NULL));
    setlocale(LC_ALL, "rus");
    cout << "Введите размер массива: ";
    int size; // длинна массива
    cin >> size;
 
    int *mas = new int [size]; // одномерный динамический массив
    for (int i = 0; i < size; i++)
    {
        mas[i] = rand() % 100; // заполняем массив случайными числами
        cout << setw(2) << mas[i] << "  "; // вывод массива на экран
    }
    cout << "\n\n";
 
    choicesSort(mas, size,from_min); // вызов функции сортировки выбором
 
    for (int i = 0; i < size; i++)
    {
        cout << setw(2) << mas[i] << "  "; // печать отсортированного массива
    }
    cout << "\n";
    delete [] mas; // высвобождаем память
    system("pause");
    return 0;
}
 
void choicesSort(int* arrayPtr, int length_array,bool (*compare)(int a,int b)) // сортировка выбором
{
    for (int repeat_counter = 0; repeat_counter < length_array; repeat_counter++)
    {
        int temp = arrayPtr[0]; // временная переменная для хранения значения перестановки
        for (int element_counter = repeat_counter + 1; element_counter < length_array; element_counter++)
        {
            if ((*compare)(arrayPtr[repeat_counter],arrayPtr[element_counter]))
            {
                temp = arrayPtr[repeat_counter];
                arrayPtr[repeat_counter] = arrayPtr[element_counter];
                arrayPtr[element_counter] = temp;
            }
        }
    }
}
Yandex
Объявления
23.12.2013, 01:40     Указатели в массиве на сортировку
Ответ Создать тему
Опции темы

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