Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 02.10.2016
Сообщений: 108
1

Быстрая сортировка не сортирует весь массив

11.04.2017, 20:48. Просмотров 362. Ответов 1
Метки нет (Все метки)

Программа быстрой сортировки сортирует только первые 10 элементов, остальная часть остается неотсортированной. Как исправить?

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
#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <ctime>
 
using namespace std;
 
void quickSort(int *numbers, int left, int right)
{
  int pivot; 
  int l_hold = left; 
  int r_hold = right; 
  pivot = numbers[left];
  while (left < right) 
  {
    while ((numbers[right] >= pivot) && (left < right))
      right--; 
    if (left != right) 
    {
      numbers[left] = numbers[right]; 
      left++; 
    }
    while ((numbers[left] <= pivot) && (left < right))
      left++; 
    if (left != right) 
    { 
      numbers[right] = numbers[left]; 
      right--; 
    }
  }
  numbers[left] = pivot;
  pivot = left;
  left = l_hold;
  right = r_hold;
  if (left < pivot) 
    quickSort(numbers, left, pivot - 1);
  if (right > pivot)
    quickSort(numbers, pivot + 1, right);
}
int main()
{
    clock_t t;
    int n; 
    cin >> n;
  int *a = new int[n];
  
  for (int i = 0; i<n; i++)
    a[i] = rand() % 100;
  
  t = clock();
  for (int i = 0; i<n; i++)
    printf("%d ", a[i]);
  printf("\n");
  quickSort(a, 0, 9); 
  
  t = clock () - t;
  for (int i = 0; i<n; i++)
    printf("%d ", a[i]);
  printf("\n");
  cout << "\n" << t;
  getchar();
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2017, 20:48
Ответы с готовыми решениями:

Сортировка слиянием неправильно сортирует массив
Есть программа сортировки слиянием. Она непонятным образом сортирует массив из 1000 элементов (или...

Массив указателей объектов класса и их быстрая сортировка
Приветствую! Собственно, у меня есть: Класс Worker; Динамический массив, хранящий в себе объекты...

сортировка не сортирует
нужно сортировать по году рождения не сортирует туплю #include &lt;iostream&gt; #include &lt;locale.h&gt;...

Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива
Мне нужно отсортировать фрагмент массива, расположенный между первым и последним отрицательным...

1
Модератор
1589 / 1049 / 480
Регистрация: 17.07.2012
Сообщений: 5,221
12.04.2017, 04:51 2
C++
54
quickSort(a, 0, n-1);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2017, 04:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Быстрая сортировка (сортировка Хоара) для связных списков
есть у кого готовый алгоритм? или подскажите как реализовать

Сортировка Слиянием vs Быстрая Сортировка - что лучше
Народ, помогите разобраться какой из методов сортировки лучше &quot;Сортировка Слиянием&quot; или &quot;Быстрая...

C/C++ FAQ :: Быстрая сортировка (сортировка Хоара)
Вопрос, скорее академический, по мотивам реализации. Вот в faq приведена реализация этого метода...

Быстрая сортировка (сортировка методом Хоара)
Ввести массив x1,x2,...,x20 в диапазоне . Требуется расположить отрицательные элементы в порядке...


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

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

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