• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

сортировка массива

  • Автор темы GreenSnake
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

GreenSnake

буду краток
ЛЮДИ ПОМОГИТЕ!!!!!!
срочно!!!
как в Delphi отсортировать массив целых чисел методом Sort от Tlist,
в хэлпе есть пример но я так и не понял как мне его подключить применимо к своей работе

желательно текст

буду презнателен за любую помощь, но прошу зарание не утруждайте себя периписыванием здесь алгоритмов пузырьковой и других сортировок, нужна именно эта (см начало)
 
M

Maniacosaur

Начнем, пожалуй.
Код:
function CompareInt(Item1, Item2: Pointer): Integer;
begin
Result:=0;
if Integer(Item1)>Integer(Item2) then 
 Result:=1
else
 if Integer(Item1)<Integer(Item2) then
  Result:=-1;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
List1.Sort(@CompareInt);
end;

Так как класс Tlist в общем случае достаточно универсальное средство для организации динамических массивов, то заранее не известно (классу), какого типа он будет хранить данные. Потому и метод сортировки, хоть и есть, но без твоей помощи он не справится. Потому в качестве параметра метод Sort принимает адрес функции, которая должна "уметь" сравнивать два элемента твоего массива.
Так как у тебя массив содержит ценые числа, то функцию, которая будет сравнивать два элемента массива я назвал CompareInt (по аналогии с хелпом :) ).
Она возвращает -1, если Item1 < Item2; 0, если Item1=Item2; 1, если Item1>Item2.

Далее просто в метод Sort передаем в качестве параметра адрес на эту функцию.

И все.
Не знаю, понятно ли объяснил, так как объяснять то я вообще не умею:)
 
G

Guest_GreenSnake

Maniacosaur
большое спасибо но по сути всё это есть в хэлпике, вот я не знаю как этим способом массив отсортировать в лист перегнать чтоли? а если массив большой это же дофига времени мне бы примерный код этого дела....
но все равно спасибо и на этом...
 
M

Maniacosaur

Дело в том, что метод Sort класса Tlist сортирует только данные, которые объект в себе содержит. Так что либо перегоняй все это дело в TList, либо писать самому функцию.
 
O

OLJ

Не может ли кто-нибудь помочь?
Мне нужен какой-либо интересный способ сортировки в Паскале, исключая стандартные ("сорт-ка вставкой", "пузырька", "сорт-ка выбором") :rolleyes:
 
B

Barmutik

Вот тут есть списочек алгоритмов с их описаниями... можете выбрать что Вам больше нравится:

 
F

Frogs2009

Не может ли кто-нибудь помочь?
Мне нужен какой-либо интересный способ сортировки в Паскале, исключая стандартные ("сорт-ка вставкой", "пузырька", "сорт-ка выбором") :lol:
хм, а ты не можешь написать сортироку вставкой??? блин,если можешь напиши пожалуйста!
 
A

astronom

Не может ли кто-нибудь помочь?
Мне нужен какой-либо интересный способ сортировки в Паскале, исключая стандартные ("сорт-ка вставкой", "пузырька", "сорт-ка выбором") :lol:
У Кнута по этому поводу есть очень интересный томик его Искусства программирования. ;)
 
A

astronom

Ну мало ли. :lol: Да и Кнута упомянуть лишний раз - святое дело.
 
A

astronom

Frogs2009, как говорится, ВЫБИРАЙ:
:)
 
A

antares

..в воздухе веяло летней сессией.. :)
 
K

Kraven

Помогите пожалуйста составить код программы для этой задачи:

Сортировка простыми вставками . Дано действительную матрицу размером n*m . Упорядочить (переставить) строки матрицы по не убыванию сумм элементов строк.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!