お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





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

"コムソート"

この発言に対し以下のコメントが寄せられています
#00179 ひでかず さん RE:ファイル関連で役に立ちそうな関数

//簡単で早いソート。コムソート(Comb Sort)サンプル バブルソートに簡単な改良を加えるだけで驚異的に高速化されます。 出典は1991年頃の日経エレクトロニクスです。 (原典を捨ててしまっち (^_^; ) Delphi の \demos\threads\SortThds.pas の Procedure TBubbleSort.Sort() を差し替えて Threaddemo.dpr を実行してください。 { TBubbleSort } { Comb Sort } procedure TBubbleSort.Sort(var A: array of Integer); var I, J, T: Integer; gap, max : Integer; swaped : Boolean; begin gap := High(A) - Low(A); max := gap; repeat gap := (gap * 3) shr 2; { gap / 1.333 } case gap of 0: gap := 1; 9, 10: gap := 11; end; swaped := False; for I := 0 to (max - gap) - 1 do begin J := I + gap; if A[i] > A[j] then begin VisualSwap(A[i], A[J], i, J ); T := A[i]; A[i] := A[J]; A[J ] := T; swaped := True;{ 要素の位置を変更した } if Terminated then Exit; end; end; until( (not swaped) and (gap = 1)); end; 97/11/10(Mon) 00:21am NCC00451 MSHIDA Original document by MSHIDA 氏 ID:(NCC00451)



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

Copyright 1996-2002 Delphi Users' Forum