Можно-ли при помощи такого кода (сортировка методом слияния) сортировать поля в базе данных:
| Код | type ar=array1[1..n] of integer; var k,m,i:integer; a,b,c:ar;
procedure sorting4; var s,i,j:integer; begin i:=1; j:=1; s:=1; {i-номер обрабатываемого элемента части а j-номер обрабатываемого элемента части b s-номер заполняемого массива части с} while (i<=k) and (j<=m) do {пока не закончилась хотя-бы одна чать} begin if a[i]<=b[i] then begin c[s]:=a[i]; inc(i); end else begin c[s]:=b[j]; inc(i); end; inc(s); end; {один из массивов-частей обработан полностью} {осталось перенести в С остаток другого массива-части} while i<=k do begin c[s]:=a[i]; inc(i); inc(s); end; while j<=m do begin c[s]:=b[j]; inc(j); inc(s); end; end;
procedure sorting2(var p:ar; len:integer); var f,i,t:integer {f - номер просмотра (изменяется от 1 до n-1) i - номер рассматриваемой пары t - промежуточная переменная для перестановки местами элементов} begin for f:=1 to len-1 do {цикл по номеры просмотра} for i:=1 to len-f do if p[i]>p[i+1] then {перестановка элементов} begin t:=p[i]; p[i]:=p[i+1]; p[i+1]:=t; end; end;
begin k:=n div 2; {n-порядковый номер последней записи} m:=n-k; for i:=1 to k do a[i]:=?Первое поле таблицы[порядковый номер существующей записи]?; for i:=1 to m do b[i]:=?Первое поле таблицы[порядковый номер существующей записи+k]?; sorting2(a,k); sorting2(b,m); sorting4; for i:=1 to n do ?Первое поле таблицы[порядковый номер существующей записи]?; end.
|
Сортировать по другому мне нельзя, если только другим методом сортировки.
Тип базы данных Paradox 7. SQL использовать не могу, т.к. обязательно нужно пременить метод сортировки. |