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

QSort, не могу устранить ошибку в программе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Чтение данных с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread234978.html
Здраствуйте, помогите пожалуйсто, как читать данные с клавиатуры (я не cin имею ввиду). Задача такая запускается программа, сворачивается и независемо не от чего она записыват все клавиши на которые я нажимаю включая enter пробел и т.д., как такое можно сделать, я незнаю даже в какую сторону капать...
C++ arrays_rand Всем доброго времени суток! Кто подскажет,как: 1.Модифицировать прогу так,чтобы кол-во элементов в массиве задавал пользователь? 2.Реализовать прогу,которая генерирует 100 чисел от -50 до 50,выводит их на экран,после чего заменяет отрицательные числа на 0,а положительные на 1.Интересная задачка,правда? http://www.cyberforum.ru/cpp-beginners/thread234972.html
Borland C 3.1 exe приложение и язык ввода C++
Созданное в BC 3.1 exe приложение запускаю под XP. Трабл такой - не могу переключить язык ввода для scanf на русский. Куда копать?
автозагрузка C++
здравствуйте!!!!!!!!!помогите есть папка или файл который отвечает за автозагрузку программ,грубо говоря я внашу туда расположение файла и он загружается с windows.но условие-не через реестр!!!!заранее большое спасибо!!!!!!!!!!!!!!!!!!!
C++ Определить функцию, переводящую число в двоичную систему счисления... http://www.cyberforum.ru/cpp-beginners/thread234945.html
Помогите пожалуйста с решением задач, если конечно не трудно)) 1. Решить с помощью вложенного цикла. Найти все натуральные числа, в диапазоне между m и n (m<n), десятичная запись которых есть строго возрастающая последовательность цифр. Подсчитать количество таких чисел. 2. Определение и вызов функций. Определить функцию, переводящую число в двоичную систему счисления и проверяющую,...
C++ Потоки. Синхронизация. Передача параметра при создании потока. Здравствуйте! Разбираюсь с потоками. Возникли проблемы то ли с синхронизацией, то ли с созданием потоков и передачей в потоковую функцию параметров, я конкретно не знал с чем. Ну и в концов замучившись полностью, я решил написать небольшой кодик, всё же с ним легче разбираться. #include "stdafx.h" #include <iostream> #include "windows.h" #include "stdlib.h" using namespace std; подробнее

Показать сообщение отдельно
Тиша
 Аватар для Тиша
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 75
28.01.2011, 01:24     QSort, не могу устранить ошибку в программе
Делаю одно обширную программу, в которой использую контейнеры. Одна из функций - быстрая сортировка элементов вектора не работает, закинула ее в отдельную программу все пытаюсь с помощью отладки устранить ошибку но не понимаю как. Код ниже

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
#include "stdafx.h"
#include <iostream>
   #include <cstdio>
     #include <time.h>
#include <vector>
using std::vector;
using namespace std;
 
 
void QuickSort(int b[], int N){
        
 
  int i = 0;
  int j = N;           
  int temp, p;
  
 
  p = b[N>>1 ];               
 
 
  do {
    while ( b[i] < p ) i++;
    while ( b[j] > p ) j--;
 
    if (i <= j) {
      temp = b[i]; b[i] = b[j]; b[j] = temp;
      i++; j--;
    }
  } while ( i<=j );
 
 
  if ( j > 0 ) QuickSort(b,j);
  if ( N > i ) QuickSort(b+i,N-i);
 
 
 
}
 
 
void main()
{ vector <int> a;
int tStep = 5;
int t=0;
while(t <= 5) {  
    int size=t;
    srand(time(NULL));
        for(int i=0;i<size;i++)
a.push_back(rand()%100 + 1);
 
        clock_t start;
       start=clock();
       int i;
 int *b=new int[size];
 
      
 for(i=0;i<size;i++) b[i]=a[i];
  
    QuickSort(b,size);
  for(i=0;i<size;i++)
        a[i]=b[i];
  
  delete []b;
  double diff=(clock()-start)/(double)CLOCKS_PER_SEC;
cout<<diff<<" "<<t<<endl;
     
       
 
       t += tStep;
       cout<<endl;
}
    /*for(int i=0;i<a.size();i++)
       cout<<a[i]<<" ";*/
 
}


если запускать просто вектор, то в
C++
1
if ( N > i ) QuickSort(b+i,N-i);
дает ошибку на b+i
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru