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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.94
Aesonet
23 / 23 / 1
Регистрация: 04.04.2012
Сообщений: 119
#1

Сортировка Хоара - C++

30.05.2012, 11:11. Просмотров 5564. Ответов 3
Метки нет (Все метки)

помогите правильно вставить счетчик шагов. Насколько я понял, функция сама себя перезапускает, тоесть надо в тело функции кидать, но так получается 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
24
25
26
27
28
29
30
31
#include <iostream>
#include <conio.h>
using namespace std;
int mass[100];
int i,j,N,ns=0;
int quickSortR(int* mass, int N) {
  i = 0, j = N;       
  int temp, p;
 ns++;
  p = mass[ N>>1 ];        
   do {
    while ( mass[i] < p ) i++;
    while ( mass[j] > p ) j--;
 
    if (i <= j) {
      temp = mass[i]; mass[i] = mass[j]; mass[j] = temp;
      i++; j--;
    }
  } while ( i<=j );
  if ( j > 0 ) quickSortR(mass, j);
  if ( N > i ) quickSortR(mass+i, N-i);
}
int main()
{srand(time(NULL));
for (i=0;i<20;i++) {mass[i]=rand()%100+1; cout<<mass[i]<<"  ";}
cout<<"\n\n";
quickSortR(mass,19);    
for (i=0;i<20;i++) cout<<mass[i]<<"  ";
cout<<"\n"<<ns;
getch();   
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 11:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка Хоара (C++):

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

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

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

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

сортировка хоара - C++
void QuickSort(int* const a, int low, int N) { int i = low, j = N; int temp, p; p = a; do { ...

Сортировка Хоара / Быстрая сортировка - C++
Доброго времени суток. Написал реализацию алгоритма быстрой сортировки. void SortHhoar(int *arr,int f,int l)//Хоара { int mid = (f...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
30.05.2012, 11:13 #2
Если Вам нужно реальное количество вызовов функции, то у Вас все верно.
0
Aesonet
23 / 23 / 1
Регистрация: 04.04.2012
Сообщений: 119
30.05.2012, 11:23  [ТС] #3
Хм, тогда получается, что сортировка выбором лучше, чем сортировка Хоара?
Или я не туда счетчик вставил?
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
#include <iostream>
#include <conio.h>
using namespace std;
int mass[100];
int i,j,N,ns=0;
int selectSort(int* mass, int N) 
{
    int tmp;
    for(int i = 0; i < N; ++i)
    { 
        int pos = i; 
        tmp = mass[i];
        for(int j = i + 1; j < N; ++j)
        {
            if (mass[j] < tmp) 
           {ns++;
               pos = j; 
               tmp = mass[j]; 
           }
        }
        mass[pos] = mass[i]; 
        mass[i] = tmp; 
        
    }return ns;
}
int main()
{srand(time(NULL));
for (i=0;i<20;i++) {mass[i]=rand()%100+1; cout<<mass[i]<<"  ";}
cout<<"\n\n";
selectSort(mass,20);    
for (i=0;i<20;i++) cout<<mass[i]<<"  ";
cout<<"\n"<<ns;
getch();   
}
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
30.05.2012, 12:42 #4
Вот здесь найдете всю необходимую информацию.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2012, 12:42
Привет! Вот еще темы с ответами:

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

Сортировка методом Хоара - C++
Дали задание 1. Пусть дано массив a1, a2, ..., an. Необходимо переставить его элементы так, чтобы сначала шла группа элементов, больших...

Быстрая сортировка Хоара - C++
Быстрая сортировка Хоара (QSort) разбивает массив в ходе сортировки до тех пор, пока размер частичного подмассива не станет равен...

Сортировка методом Хоара - C++
Здраствуйте помогите пожалуйста с программой не могу запрограммировать сортировку методом Хоара, мне задано зделать 3 сортировки (выбором,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.05.2012, 12:42
Ответ Создать тему
Опции темы

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