お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"メソッドでソートするList"

この発言は
#01060 TN さんのメソッドでソートするList
に対するコメントです

中途半端なクラスを新規に作るとうざいので,これだけのためならただの手続きを 一個つくって Listを渡す方がまだスマートでしょう. 使い方 ・比較関数をメソッドとして作る ・下記手続きにListとMethodを渡して呼び出す type TListSortCompareMethod = function(Item1, Item2: Pointer):Integer of object; ////////////////////////////////////////////////////////////////////////////// procedure QuickSort( SortList: TList; Compare: TListSortCompareMethod ); var I, J: Integer; P, T: Pointer; procedure QuickSortInner( SortList: TList; L, R: Integer; Compare: TListSortCompareMethod ); begin repeat I := L; J := R; P := SortList[(L + R) shr 1]; repeat while Compare(SortList[I], P) < 0 do Inc(I); while Compare(SortList[J], P) > 0 do Dec(J); if I <= J then begin T := SortList[I]; SortList[I] := SortList[J]; SortList[J] := T; Inc(I); Dec(J); end; until I > J; if L < J then QuickSortInner(SortList, L, J, Compare); L := I; until I >= R; end; begin if SortList.Count > 0 then QuickSortInner(SortList, 0, SortList.Count - 1, Compare); end; TN(CQJ01721) Original document by TN 氏 ID:(CQJ01721)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum