![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Дан одномерный массив 10 чисел. отсостировать массив по возрастанию. Значения элементов массива заданы случайным образом из интервала от -8 до 17
Последний раз редактировалось terwet, 20.12.2010 в 17:21. |
|
#2
|
|||
|
|||
|
Код:
const Sz=10;
type IArr=array [1..Sz] of integer;
var A: IArr;
procedure swap(var a,b: integer);
var v: integer;
begin
v:=a;
a:=b;
b:=v
end;
procedure QuickSort(var A: IArr; n: integer);
procedure sort(l,r: integer);
var
i,j: integer;
w,x: integer;
begin
i:=l; j:=r;
x:=A[(l+r) div 2];
repeat
while A[i]<x do Inc(i); // ищем первый элемент >= x
while A[j]>x do Dec(j); // ищем последний элемент <= x
if i<=j then
begin
swap(A[i],A[j]);
Inc(i);
Dec(j);
end;
until i>j;
if l<j then sort(l,j);
if i<r then sort(i,r)
end;
begin
sort(1,n)
end;
begin
//Чтение массива
quicksort(a,sz);
//вывод массива
end; |