Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.12.2008, 00:16
Stud555 Stud555 вне форума
Прохожий
 
Регистрация: 26.12.2008
Сообщения: 3
Репутация: 10
По умолчанию БД для быстрой сортировки

Имеется большой массив. Его необходимо БЫСТРО сортировать, для этого хочу использовать БД. Подскажите какую, при условии, что программу пишу на D6, дома и на работе. Таскаю ее туда-сюда.
Ответить с цитированием
  #2  
Старый 26.12.2008, 06:53
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Конечно же Оракл
Массив-то на сколько большой?
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 26.12.2008, 09:30
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Зачем же, коллега, так людей пугать ? У новичков, которые не работали с СУБД, а тем более с Oracle может нервный срыв приключится .
Есть же Firebird Embedded, который вообще не требует никакой установки. Распаковал несколько файлов и работай. Да и полный FB устанавливается за 1 минуту. Как раз для начинающих. А на Оракл они перейдут обязательно, только потом, когда будут делать базу для General Motors.
__________________
Не забывайте делать резервные копии
Ответить с цитированием
  #4  
Старый 26.12.2008, 10:05
Grunch Grunch вне форума
Новичок
 
Регистрация: 08.04.2008
Адрес: Краснодар
Сообщения: 52
Репутация: 10
По умолчанию

Если задача стоит ТОЛЬКО в сортировке большого массива, то, имхо, тянуть для этого БД особого смысла нет, достаточно просто реализовать любой быстрый алгоритм сортировки
Ответить с цитированием
  #5  
Старый 26.12.2008, 19:09
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

смотря на сколько большой масив ... может для этого хватит самой простенькой локальной СУБД
сколько записей, приблизительно, нужно обработать ?
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #6  
Старый 26.12.2008, 20:46
Stud555 Stud555 вне форума
Прохожий
 
Регистрация: 26.12.2008
Сообщения: 3
Репутация: 10
По умолчанию

массив примерно 10000-20000 записей. В принципе сделал сортировку методом Шелла. Скорость вполне устраивает. Если можно, напишите по подробнее про FireBird. Как-то пытался с ней работать, но ни чего не вышло
Ответить с цитированием
  #7  
Старый 26.12.2008, 20:48
Stud555 Stud555 вне форума
Прохожий
 
Регистрация: 26.12.2008
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Grunch
Если задача стоит ТОЛЬКО в сортировке большого массива, то, имхо, тянуть для этого БД особого смысла нет, достаточно просто реализовать любой быстрый алгоритм сортировки
А есть ли алгоритмы быстрее Шелла? Нужно сортировать по одному полю. Вида 56.012345678
Ответить с цитированием
  #8  
Старый 26.12.2008, 23:06
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Для такого кол-ва записей вполне хватит и старого Парадокса.
А чем тебя обычный фильтр не устраивает ???
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #9  
Старый 27.12.2008, 19:02
Grunch Grunch вне форума
Новичок
 
Регистрация: 08.04.2008
Адрес: Краснодар
Сообщения: 52
Репутация: 10
По умолчанию

Цитата:
Сообщение от Stud555
А есть ли алгоритмы быстрее Шелла? Нужно сортировать по одному полю. Вида 56.012345678
Конечно есть. Сложность алгоритма Шелла - О(n*log^2(n)), алгоритм быстрой сортировки имеет сложность О(n*log(n)). Уже на 10000 элементов скорость его работы должна быть больше.

Код:
procedure quicksort(var a: list; Lo,Hi: integer);
 
  procedure sort(l,r: integer);
  var
    i,j,x,y: integer;
  begin
    i:=l; j:=r; x:=a[random(r-l+1)+l]; { x := a[(r+l) div 2]; - для выбора среднего элемента } 
    repeat
      while a[i]<x do i:=i+1; { a[i] > x  - сортировка по убыванию}
      while x<a[j] do j:=j-1; { x > a[j]  - сортировка по убыванию}
      if i<=j then 
      begin
        if a[i] > a[j] then {это условие можно убрать} {a[i] < a[j] при сортировке по убыванию}
        begin
          y:=a[i]; a[i]:=a[j]; a[j]:=y 
        end; 
        i:=i+1; j:=j-1
      end;
    until i>j;
    if l<j then sort(l,j);
    if i<r then sort(i,r)
  end; {sort}
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:04.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025