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

Быстрая сортировка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Даны интегралы. Сколько достаточно взять узлов, чтобы найти значение первого интеграла с точностью 0.001 http://www.cyberforum.ru/cpp-beginners/thread351583.html
помогите пожалуйста!!!! даны интегралы.Сколько достаточно взять узлов, чтобы найти значение первого интеграла с точностью 0.001:по формулам прямоугольников?по формулам трапеций?
C++ Передать переменную типа char по ссылке доброго времени суток. помогите над очень простым задание из одной книги. Создайте функцию, которая получает аргумент char& и изменяет его. В функции мэйн() выведите переменную чар, вызовите функцию для этой переменной и снова выведите ее. с выводом то проблем нету) но вот никак не могу нормально передать перменную, то ругается на константность, то на временность. помогите советом... http://www.cyberforum.ru/cpp-beginners/thread351568.html
C++ Драйвер для чтения CD-ROM
Есть код программы, которая должна считывать данные с CD-ROM'а. Скажите, он правильный или нет? Просто меня уверяют, что не правильный: #include <windows.h> #include <winioctl.h> #include <stdio.h> // ПАРАМЕТРЫ ПО УМОЛЧАНИЮ #define DEF_FN "sector" #define DEF_TO 0x666 #define DEF_FROM 0x000 #define CDROM_SECTOR_SIZE 2048 // for MODE1/MODE2FORM1...
Непонятки с размером массива C++
Почему так можно: int main() { int SIZE=10; char ch={'a','b','c','d','e','f','g','h','i','\0'}; for(int i=0;i<SIZE;i++) cout<<ch; cout<<endl<<endl; for(char *ptr=ch;*ptr!='\0';ptr++)
C++ Задача ал-Караджи http://www.cyberforum.ru/cpp-beginners/thread351554.html
Кто может написать код на СИ для сией шляпы? Найти площадь прямоугольника, основание которого в n раз больше высоты, а площадь численно равна периметру.
C++ Найти количество групп с пятью символами Обьясните пожалуста задачу: Дана строка, состоящая из групп нулей и единиц. Каждая группа отделя- ется от другой одним или несколькими пробелами. Найти количество групп с пятью символами. подробнее

Показать сообщение отдельно
Cheshire Cat
1 / 1 / 1
Регистрация: 11.12.2010
Сообщений: 14
15.09.2011, 01:42  [ТС]     Быстрая сортировка
финальный вариант, если будет интересно:
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
#include <algorithm>
#include <iostream>
#include <time.h>
using namespace std;
 
void quicksort (int [], int, int);
int partition (int [], int, int);
int BinSearch (int [], int, int);
 
int main() {
    setlocale(LC_ALL, "Russian");
    int N,M;
    cout<<"Введите количество элементов в массиве: ";
    cin>>N;
    int *p = new int [N];
    cout<<"Введите "<<N<<" элементов через пробел\n";
    for (int i=0; i<N; i++) cin>>p[i];
    int l = 0, r = N-1;
    quicksort(p, l, r);
    for (int i=0; i<N; i++) cout<<p[i]<<' ';
    cout<<endl;
    cout<<"Введите количество запросов: "; cin>>M;
    int *a = new int [M];
    cout<<"Введите "<<M<<" запрашиваемых элементов\n";
    for (int i=0; i<M; i++) cin>>a[i];
    clock_t begin = clock();
    for (int i=0; i<M; i++) {
        if (BinSearch(p, N, a[i]) != -1) cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
    clock_t end = clock();
    cout <<  (double)(end - begin)/CLOCKS_PER_SEC <<"sec"<< endl;
    delete []p; delete []a;
    system("Pause");
    return 1;
}
 
void quicksort (int p[], int l, int r){
    if (r <= l) return;
    int i = partition (p,l,r);
    quicksort (p, l, i-1);
    quicksort (p, i+1, r);
}
 
int partition (int p[], int l, int r){
    int i = l-1, j = r, v = p[r];
    for (;;) {
        while (p[++i] < v);
        while (v < p[--j]) {if (j <= l ) break;}
        if (i >= j) break;
        swap (p[i], p[j]);
    }
    swap (p[i], p[r]);
    return i;
}
 
int BinSearch (int p[], int N, int key){
    int l = 0;
    int r = N-1;
    while (l<=r) {
        int m = (l + r) / 2;
        if (p[m] == key) return m;
        if (p[m] < key) l = m + 1;
        if (p[m] > key) r = m - 1;
    }
    return -1;
}
 
Текущее время: 08:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru