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

Quicksort - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить через сколько лет первоначальный вклад увеличится http://www.cyberforum.ru/cpp-beginners/thread667259.html
На срочный вклад в сберегательный банк внесено 500 рублей. В конце каждого года вклад увеличивается на 15% от вклада за предыдущий год.Определить через сколько лет первоначальный вклад увеличится в 5...
C++ Реализовать класс с двумя скрытыми полями first и second Ребят, помогите решить задачку: (заранее спасибо:)) Сама задачка: Реализовать класс с двумя скрытыми полями first и second. Во классе должны присутствовать следующие методы: – методы задания... http://www.cyberforum.ru/cpp-beginners/thread667256.html
C++ Написать рекурсивную функцию вычисления суммы цифр натурального числа
Вот задача: Написать рекурсивную функцию вычисления суммы цифр натурального числа. Вот что я написал: #include<iostream> #include<time.h> #include<locale.h> #include<conio.h> using namespace...
Треугольник и прямоугольник C++
Всем привет. Задача: По введённым сторонам треугольника а, б, ц определить впишется ли он в прямоугольник со сторонами д, е. Есть мысль о достраивании до прямоугольного любого треугольника. ...
C++ Найти сумму квадратов первых N натуральных чисел http://www.cyberforum.ru/cpp-beginners/thread667244.html
Найти сумму квадратов первых N натуральных чисел, каждое из которых при делении на 5 дает в остатке 3. Вывести эти числа, их квадраты и сумму квадратов.
C++ Перепись из одного файла в другой помогите сделать программку которая будет из одного файла брать числа любого(имеется ввиду 0-100) значения и записывать в другой файл их в обратном порядке. сам ни черта не могу понять... #include... подробнее

Показать сообщение отдельно
_Kate_
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 92
Записей в блоге: 1

Quicksort - C++

09.10.2012, 18:19. Просмотров 659. Ответов 0
Метки (Все метки)

Ребята у меня есть алгоритм Quicksort за какой формулой определить количество сравнений и копирования??
так как для алгоритма сортировками вставками формула есть:
для колва сравнений c=((n-1)*n)\2
и для обмена =((n-1)*n)\4

Добавлено через 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
46
47
48
49
50
51
52
#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;
void quickSort(int arr[], int left, int right) {
   int i = left, j = right;
   int tmp;
   int pivot = arr[(left + right) / 2];
/* partition */
    while (i <= j) {
    while (arr[i] < pivot)
   i++;
   while (arr[j] > pivot)
   j--;
   if (i <= j) {
  tmp = arr[i];
  arr[i] = arr[j];
  arr[j] = tmp;
  i++;
  j--;}};
   /* recursion */
      if (left < j)
      quickSort(arr, left, j);
      if (i < right)
         quickSort(arr, i, right);}
int main(){
    setlocale(LC_CTYPE,"Russian");
    int num;
    cout << "Колво элементов: ";
    cin >> num; 
 
    int *mass = new int[num]; 
    srand((unsigned)time(NULL));
 for (int i = 0; i < num; i++) {
        mass[i] = rand()%20+100;
        cout<<mass[i]<<" ";  }
 cout<<endl;
 cout<<endl;
 
    getch();
    cout<<"Quicksorted array:"<<endl;
clock_t t0 = clock();
    quickSort(mass,0, num-1);//функция квиксорта.
    for (int i=0;i<num;i++){
        cout<<mass[i]<<"\t";}
    clock_t t1 = clock();
    cout<<endl;
        cout << "time: " << (double)(t1 - t0) / CLOCKS_PER_SEC << endl;
 
    getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru