Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
mn_foof
0 / 0 / 0
Регистрация: 21.06.2017
Сообщений: 5
#1

Заполнить массив случайными числами и отсортировать его методом быстрой сортировки по убыванию - C++

22.06.2017, 09:55. Просмотров 259. Ответов 7
Метки нет (Все метки)

Написать программу на с++ которая заполняет массив случайными числами и сортирует их методом быстрой сортировки ,за направлением убывания . Размерность массива одномерный. Отсортировать элементы с непарным номером.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2017, 09:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнить массив случайными числами и отсортировать его методом быстрой сортировки по убыванию (C++):

Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию - C++
Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести в выходной поток вот пример но в...

STL Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести - C++
Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по убыванию и вывести в выходной поток. Добавлено через...

Заполнить случайныйми числами одномерный динамический массив; отсортировать его методом пузырьковой сортировки - C++
В плюсах полный ноль...помогите пожалуйста создать одномерный массив через new и delete его сортировку пузырьком и вывод. Заранее спасибо.

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию - C++
создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию. получилось вот что: #include...

Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по возрастанию - C++
Есть такое задание: Заполнить массив размером 10 случайными числами от 0 до 10, отсортировать его по возрастанию и вывести в выходной поток...

Отсортировать массив со случайными числами по убыванию - C++
отсортировать массив со случайными числами по убыванию и указать на последний элемент

7
mn_foof
0 / 0 / 0
Регистрация: 21.06.2017
Сообщений: 5
22.06.2017, 10:11  [ТС] #2
Не сортирует одно из числ.Коротко просто не выводит в исход 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
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
87
88
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
 
void QuickSort(int A[], int L, int R, int k, int g)
{
 
    int iter = L,
        jter = R;
 
    int middle = (R + L) / 2;
 
 
    int x = A[middle];
    int w;
 
    do
    {
        while (A[iter]>x)
        {
            iter++;
            
        }
 
        while (x>A[jter])
        {
            jter--;
            
        }k++;
 
        if (iter <= jter)
        {
            w = A[iter];
            A[iter] = A[jter];
            A[jter] = w;
 
            iter++;
            jter--;
            g++;
 
        }
    } while (iter<jter);
 
    if (L<jter)
    {
        QuickSort(A, L, jter, k, g); 
    }
 
    if (iter<R)
    {
        QuickSort(A, iter, R, k, g);
    }
 
    printf("\nКiлькiсть операцiй порiвняння - %d", k);
    printf("\nКiлькiсть перестановок - %d ", g);
 
}
 
int main(void)
{
 
    int A[11], i, k = 0, g = 0;
 
    setlocale(LC_ALL, "ukr");
 
    srand(time(NULL));
 
    for (i = 0; i < 11; ++i)
    {
        A[i] = rand() % 100 + 1;
    }
    for (i = 0; i < 11; ++i)
    {
        printf("%d ", A[i]);
    }
 
    QuickSort(A, 0, 11, k, g); 
 
    for (i = 0; i < 11; ++i)
        if (i += 1) 
            printf(" \n %d ", A[i]);
    
 
 
    getchar();
    return 0;
}
0
nmcf
5754 / 5065 / 1733
Регистрация: 14.04.2014
Сообщений: 20,749
22.06.2017, 10:16 #3
R - последний индекс. Откуда там 11? Для чего условие в 81-й строке?
0
mn_foof
0 / 0 / 0
Регистрация: 21.06.2017
Сообщений: 5
22.06.2017, 10:48  [ТС] #4
в 81 строке проверка на непарный номер элемента
0
nmcf
5754 / 5065 / 1733
Регистрация: 14.04.2014
Сообщений: 20,749
22.06.2017, 11:13 #5
Результат всегда true.
0
DobroAlex
Модератор
301 / 264 / 77
Регистрация: 30.04.2016
Сообщений: 1,369
Завершенные тесты: 2
22.06.2017, 11:39 #6
Создание и заполнение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cstdlib>
#include <iostream>
#include <ctime>
int main (){
   int len ;
   int* arr;
   cin >> len   ;
   arr=new int [len];
   srand(time());
   for (int i = 0; i <len;i++){
       arr[i] = rand()%1000;
       srand(time());
       }
   return 0;
}
Quicksort тут :
Алгоритм Быстрой сортировки (Quick Sort)
0
Antikl
195 / 191 / 55
Регистрация: 15.07.2015
Сообщений: 1,017
Завершенные тесты: 6
22.06.2017, 12:04 #7
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
template<class T>
void quickSortR(T* a, long N) {
// На входе - массив a[], a[N] - его последний элемент.
 
    long i = 0, j = N;      // поставить указатели на исходные места
    T temp, p;
 
    p = a[ N>>1 ];      // центральный элемент
 
    // процедура разделения
    do {
        while ( a[i] < p ) i++;
        while ( a[j] > p ) j--;
 
        if (i <= j) {
            temp = a[i]; a[i] = a[j]; a[j] = temp;
            i++; j--;
        }
    } while ( i<=j );
 
    // рекурсивные вызовы, если есть, что сортировать 
    if ( j > 0 ) quickSortR(a, j);
    if ( N > i ) quickSortR(a+i, N-i);
}
0
MrGluck
22.06.2017, 14:23     Заполнить массив случайными числами и отсортировать его методом быстрой сортировки по убыванию
  #8
 Комментарий модератора 
mn_foof, пожалуйста, прочитайте правила форума.
Особое внимание обратите на пункт 4.3 (порядок именования тем).
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2017, 14:23
Привет! Вот еще темы с ответами:

Динамический массив отсортировать по возростанию методом быстрой сортировки - C++
Отсортировать дин. масив по возростанию методом быстрой сортировки.

Заполнить массив случайными числами по возрастанию и убыванию - C++
Случайными числами 0..700 по возрастанию и убыванию

Создать двухмерный массив, заполнить случайными числами от 0 до 30 и отсортировать - C++
Суть: создать двухмерный массив, заполнить случайными числами от 0 до 30 и отсортировать массив. код: #include &lt;iostream&gt; using...

Создать одномерный массив, заполнить его случайными числами. Поменять в массиве местами две его половины - C++
Создать одномерный массив и заполнить его случайными целыми числами. Вывести массив. Поменять в массиве местами две его половины (в...


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

Или воспользуйтесь поиском по форуму:
8
22.06.2017, 14:23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.