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

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

Войти
Регистрация
Восстановить пароль
 
Алиш
62 / 2 / 3
Регистрация: 10.04.2011
Сообщений: 126
#1

Алгоритмы сортировки массивов - C++

21.03.2012, 12:23. Просмотров 826. Ответов 3
Метки нет (Все метки)

Дан массив А(50). Отсортировать элементы, предшествующие первому нулевому элементу, по возрастанию алгоритмом «Сортировка вставками».
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2012, 12:23     Алгоритмы сортировки массивов
Посмотрите здесь:

Алгоритмы Сортировки C++
C++ типовые алгоритмы сортировки
C++ Алгоритмы сортировки массивов
C++ алгоритмы сортировки
алгоритмы сортировки массивов C++
Алгоритмы сортировки. Подсчетом C++
C++ векторы и алгоритмы сортировки
Алгоритмы сортировки и поиска C++
Основные алгоритмы сортировки C++
Реализовать все алгоритмы сортировки, оформив решение в виде функций ввода, вывода и обработки массивов C++
C++ Алгоритмы поиска и сортировки одномерных массивов
C++ Алгоритмы сортировки и обработки двумерных массивов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
21.03.2012, 12:28     Алгоритмы сортировки массивов #2
В чем помощь то нужна? конкретней?

Добавлено через 2 минуты
Алгоритмы сортировок
Алиш
62 / 2 / 3
Регистрация: 10.04.2011
Сообщений: 126
21.03.2012, 20:38  [ТС]     Алгоритмы сортировки массивов #3
нужно листинг программы сделать, можете помочь?
Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
21.03.2012, 22:01     Алгоритмы сортировки массивов #4
Цитата Сообщение от Алиш Посмотреть сообщение
нужно листинг программы сделать, можете помочь?
Я Вам скинул сылку выше на алгоритмы сортировок! там есть сортировка вставками! ну раз вы не увидели, тогда

на С++

C++
1
2
3
4
5
6
7
8
9
10
11
12
template< class T >
void insertSort(T* a, int size) 
{
    T tmp;
    for (int i = 1, j; i < size; ++i) // цикл проходов, i - номер прохода
    {
        tmp = a[i];     
            for (j = i - 1; j >= 0 && a[j] > tmp; --j) // поиск места элемента в готовой последовательности 
            a[j + 1] = a[j];    // сдвигаем элемент направо, пока не дошли
        a[j + 1] = tmp; // место найдено, вставить элемент    
    }
}
на Си

C
1
2
3
4
5
6
7
8
9
10
11
void insertSort(int* a, int size) 
{
    int i, j, tmp;
    for (i = 1; i < size; ++i) // цикл проходов, i - номер прохода
    {
        tmp = a[i];     
            for (j = i - 1; j >= 0 && a[j] > tmp; --j) // поиск места элемента в готовой последовательности 
            a[j + 1] = a[j];    // сдвигаем элемент направо, пока не дошли
        a[j + 1] = tmp; // место найдено, вставить элемент    
    }
}
Добавлено через 5 минут
Ладно не заморачивайся! держи такой рабочий код, но если не лень можешь его оптимизировать!

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
#include "iostream"
#include "ctime"
 
using namespace std;
 
int main()
{
    setlocale(0,"");
    srand(time(0));
    const int n = 50;
    int index;
    int A[n] = {0};
 
    for(int i = 0; i < n; i++)
    {
        cout << (A[i] = -5 + rand() % 10) << " ";
    }
 
    for(int i = n; i > 0; i--)
    {
        if(A[i] == 0)
        {
            index = i;
        }
    }
    
    int j;
    for (int i = 1; i < index; ++i) // цикл проходов, i - номер прохода
    {
            int  tmp = A[i];     
            for (j = i - 1; j >= 0 && A[j] > tmp; --j)// поиск места элемента в готовой последовательности 
            A[j + 1] = A[j];    // сдвигаем элемент направо, пока не дошли
        A[j + 1] = tmp; // место найдено, вставить элемент      
    }
 
    cout << endl << endl;
 
    for(int i = 0; i < n; i++)
    {
        cout << A[i] << " ";
    }
 
    system("pause >> null");
    return 0;
}
Yandex
Объявления
21.03.2012, 22:01     Алгоритмы сортировки массивов
Ответ Создать тему
Опции темы

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