Q&A

  • [초보]소트가 않되요..
i=1 j=2

temp:integer

repeat

repeat

if a[i]
begin

temp:=a[i];

a[i]:=a[j];

a[j]:=a[i];

end;

until j=10;

i:=i+1;

j:=i+1;

until i=9;



대충 이렇게 프로그램 했는데.. 이상하게 그냥 다운 되요..컴퓨터가

혹시 이것보다 좋은 소트법 없나요..

베이직에서 써먹었던건데.. 델파이에서 않되네요..































1  COMMENTS
  • Profile
    구창민 1999.08.25 18:39
    반정현 께서 말씀하시기를...

    > i=1 j=2

    > temp:integer

    > repeat

    > repeat

    > if a[i]
    > begin

    > temp:=a[i];

    > a[i]:=a[j];

    > a[j]:=a[i];

    > end;

    > until j=10;

    > i:=i+1;

    > j:=i+1;

    > until i=9;

    >

    > 대충 이렇게 프로그램 했는데.. 이상하게 그냥 다운 되요..컴퓨터가

    > 혹시 이것보다 좋은 소트법 없나요..

    > 베이직에서 써먹었던건데.. 델파이에서 않되네요..



    반정현님 안녕하세요?

    아래 버블소트와 셀렉션 소트를 참조하세요.

    그리고, 퀵소트 알고리즘은 델파이 헬프에도 있을 겁니다.

    그럼.. 즐거운 프로그래밍 되시구요~



    procedure BubbleSort(var A: array of Integer);

    var

    I, J, T: Integer;

    begin

    for I := High(A) Downto Low(A) do

    for J := Low(A) to High(A) - 1 do

    if A[J] > A[J + 1] then

    begin

    T := A[J];

    A[J] := A[J + 1];

    A[J + 1] := T;

    end;

    end;





    procedure SelectionSort(var A: array of Integer);

    var

    I, J, T: Integer;

    begin

    for I := Low(A) to High(A) - 1 do

    for J := High(A) DownTo I + 1 do

    if A[I] > A[J] then

    begin

    T := A[I];

    A[I] := A[J];

    A[J] := T;

    end;

    end;