Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: СОРТИРОВКА в Delphi Добавлено: 06.12.02 18:59  

Автор вопроса:  Svetlana | ICQ: 262385618 

если не трудно, скиньте пожалуйста код сортировки ПО АЛФАВИТУ . Нужно отсортировать слова в файле (слова расположены друг по другом, т.е на разных строках ).  

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 LIS



Вопросов: 7
Ответов: 256
 Профиль | | #1 Добавлено: 06.12.02 19:03

Do you need sort function in Delphi only?

I have in VB .... 

Ответить

Номер ответа: 2
Автор ответа:
 LIS



Вопросов: 7
Ответов: 256
 Профиль | | #2 Добавлено: 06.12.02 19:39
Do you need to sort a file or to sort array?

Ответить

Номер ответа: 3
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #3
Добавлено: 07.12.02 21:35

Привет. Посмотри эту тему

  Сортировка

Там есть ссылка на VBStreets где есть код сортировки на паскале.

О как я шифранул :)

Ответить

Номер ответа: 4
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #4
Добавлено: 07.12.02 23:10

Нашёл статью. Но это для БЕЙСИКа.

Если Дельфи знаешь - сделаешь.

 

Реальная скорость выполнения алгоритмов

Если отвлечься от производительности того или иного алгоритма, то выясняется, что даже очень быстрый алгоритм в некоторых случаях может оказаться не таким уж и быстрым. Если вам нужно отсортировать короткий список, например размером от 100 до 500 записей, в подавляющем большинстве случаев будет проще воспользоваться самым простым алгоритмом. Так как затраты на созданию сложного алгоритма могут просто не окупиться.

С другой стороны, производительность программы в целом сильно зависит от мощности компьютера. И может получиться так, что программист, потратив большое количество времени, создаст высокоскоростной алгоритм сортировки, но использоваться от будет, например, на Pentium 4. В таком случае, воспользовавшись алгоритмом попроще и сэкономив тем самым время и силы, можно добиться весьма приемлемой производительности. Точно также, не стоит писать сложный алгоритм, если он будет использоваться одни раз месяц, в таком случае можно и подождать, а вот если сортировка будет производится каждые несколько секунд, то производительность алгоритма может оказаться кричным фактором в эффективности программы.

Другой критерий производительности заключается в использовании оперативной памяти компьютера. До тех пор, пока Windows легко помещает все данные списка в ОЗУ производительность алгоритма будет наибольшей. Но ситуация такова, что если весь список не уменьшается в памяти компьютера, то Windows начнет активно использовать файл подкачки. В таком случае, каким бы быстрым не был ваш жесткий диск, производительность упадет очень резко. Решение проблемы заключается в том, чтобы писать эффективные алгоритмы и вовремя очищать память, данные которой уже не требуются. Это легче сказать, чем сделать. О оптимизации программ можно написать много книг.

Сортировка выбором

Сортировка выбором (selectionsort) - простой алгоритм. Идея состоит в поиске наименьшего элемента в списке, который затем меняется местами с элементом на вершине списка. Затем находится наименьший элемент из оставшихся, и меняется местами со вторым элементом. Процесс продолжается до тех пор, пока все элементы не займут свое конечное положение.

Public Sub Selectionsort(List() As Long, min As Long, max As Long)
'здесь List() - массив, который передается в процедуру обработки
'min - минимальное значение индекса
'max - максимальное значение индекса
 
Dim i As Long
Dim j As Long
Dim b_val As Long
Dim b_j As Long
 
    For i = min To max - 1
        ' Найти наименьший элемент из оставшихся.
        b_val = List(i)
        b_j = i
        For j = i + 1 To max
            If List(j) < b_val Then
                b_val = List(j)
                b_j = j
            End If
        Next j
 
        ' Поместить элемент на место.
        

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам