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

Quiсk sort - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Даны два двухмерных массива одинаковых размеров. Создать третий массив такого же размера, каждый элемент которого равен 100 http://www.cyberforum.ru/cpp-beginners/thread43617.html
Даны два двухмерных массива одинаковых размеров. Создать третий массив такого же размера, каждый элемент которого равен 100, если соответствующие элементы двух первых массивов имеют одинаковый знак, и равен нулю в противном случае...
C++ Дан двухмерный массив.Найти сумму элементов побочной диагонали и сумму элементов главной диагонали Дан двухмерный массив.Найти сумму элементов побочной диагонали и сумму элементов главной диагонали... Программу надо в С. http://www.cyberforum.ru/cpp-beginners/thread43613.html
C++ НОД для трех чисел.
Здорова народ! Как найти найболшый общий делитель для трьох чисел?
C++ Дан двухмерный массив.Выямнить является ли произведение элементов заданного столбца массива трехзначным числом
Дан двухмерный массив.Выямнить является ли произведение элементов заданного столбца массива трехзначным числом
C++ Сформировать два массива.... http://www.cyberforum.ru/cpp-beginners/thread43599.html
Дан массив из 20 элементов. Сформировать два массива размером 10, включив в первый из них элементы с четными номерами, во второй с нечетными. Не могу сформировать массив, Если не сложно напишите всю программу... Добавлено через 2 минуты 5 секунд сам пробывал писать: #include<stdio.h> main() { int a={3,4,5,7,3,5,3,3,5,3,3,9,0,6,7,4,5,5,8,3}, b, c, i; printf("c=");
 

Показать сообщение отдельно
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2295 / 1665 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
10.07.2009, 20:03     Quiсk sort
Цитата Сообщение от Mailto Посмотреть сообщение
добавил в начало функции сортировки проверку границ.
Дело не в границах, дело в перегрузке стека, я же тебе говорю смотри в сторону рекурсии. В примере явно ошибка. Подожди, счас пороюсь, где то была функция быстрой сортировки.
Вот держи, замени свою sort на эту:
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
void sort(int l, int u)
{
  int i = l;
  int j = u;
 
  int x = a[(l + u) / 2];
 
  do {
    while (a[i] < x)
      ++i;
    while (a[j] > x)
      --j;
 
    if(i <= j){
      if (i < j) 
        swap(a[i], a[j]);
 
      ++i;
      --j;
    }
  } while (i <= j);
 
  if (i < u)
    sort(i, u);
  if (l < j)
    sort(l, j);
}
 
Текущее время: 00:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru