Отсортировать массив челночным способом
Категория: Delphi/Pascal
2012-02-12 20:39:11
code: #pascal
Program fd; type DataArray=array[1..100] of integer; DataItem = integer; var A:DataArray; i,j,n,NN:integer; procedure Shaker(var item: DataArray; count:integer); var j, k, l, r: integer; x: DataItem; begin l := 2; r := count; k := count; repeat for j := r downto l do if item[j-1]>item[j] then begin { обмен } inc(NN); x := item[j-1]; item[j-1] := item[j]; item[j] := x; k := j; end; l := k+1; for j := l to r do if item[j-1]>item[j] then begin { обмен } inc(NN); x := item[j-1]; item[j-1] := item[j]; item[j] := x; k := j; end; r := k-1; until l>r end; {конец челночной сортировки} begin NN:=0; write('razmer N= '); readln(n); for i:=1 to n do A[i]:=random(20); writeln('Massiv:'); for i:=1 to n do write(A[i],', '); Shaker(A,n);writeln; writeln('OTSORTIROVANNII Massiv:'); for i:=1 to n do write(A[i],', '); writeln; writeln('Cislo Obmenov: ',NN); readln; end.
Поделиться: