Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Быстрая сортировка 
V
    Опции темы
Beholder
Дата 16.5.2007, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Добрый день всем. Надо в C++ Builder сделать быструю сортировку. Нашел код:
Код

template<class T>
void QuickSortCenter(T* x, long N) {
  long i = 0, j = N; // начальные значения
  T temp, p;

  p = x[ N>>1 ];     // выбираем середину

  // процедура разделения
  do {
    while (x[i] < p) i++;
    while (x[j] > p) j--;

    if (i <= j) {
      temp = x[i]; x[i] = x[j]; x[j] = temp;
      i++; j--;
    }
  } while (i <= j);


  // рекурсивные вызовы, если есть, что сортировать 
  if ( j > 0 ) QuickSortCenter(x, j);
  if ( N > i ) QuickSortCenter(x+i, N-i);
}


Создал новый юнит, вставил код, скомпилировал, вроде запускается, но как мне проверить на работоспособность? т.е. как подставить входные данные? В С++ и Builder'е ничего не соображаю, вот и вопрос такой глупый...
PM MAIL   Вверх
Voldemar2004
Дата 16.5.2007, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 1
Всего: 23



В Builder'e есть готовый QSort + используй функтор сравнения, только и всего
Код
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int sort_function( const void *a, const void *b);
char list[5][4] = { "cat", "car", "cab", "cap", "can" };

int main(void)
{
   int  x;

   qsort((void *)list, 5, sizeof(list[0]), sort_function);
   for (x = 0; x < 5; x++)
      printf("%s\n", list[x]);
   return 0;
}

int sort_function( const void *a, const void *b)
{
   return( strcmp((char *)a,(char *)b) );
}

Цитата(Beholder @  16.5.2007,  20:05 Найти цитируемый пост)
как подставить входные данные?
Фактический параметр функции, т.е. аргумент функции - твои входные данные.



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Beholder
Дата 17.5.2007, 02:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Спасибо, разобрался, строенная функция не нужна.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0404 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.