Дан одномерный массив , заполненный случайным образом десятью числами из диапазона от 0 до 100. найтисамую длинную послпоследовательность чисел, по возрастанию. вывести ее и ее длину на экран.
Const n=10; var a:array[1..n] of integer; i,_start,_end, startInd, endInd:integer; begin Randomize; Write('Исходный массив: '); _start:=-1; _end:=-1; startInd:=-1; endInd:=-1;
for i:=1 to n do begin a[i]:=random (0,100); Write(a[i],' '); end; Writeln;
for i:=2 to n do begin if a[i]>a[i-1] then if _start > -1 then _end := i else begin _start := i-1; _end := i; end else begin
if (_start > -1) and ((endInd - startInd) < (_end - _start)) then begin startInd := _start; endInd := _end; end;
_start := -1; _end := -1; end; end;
if startInd > -1 then begin Writeln('Длина диапазона: ', (endInd-startInd+1)); Write('Значения из диапазона: '); for i:=startInd to endInd do Write(a[i],' '); end;
end.
Сергей
01.09.2022
Как ч понял сортировка по неубыванию это сортировка по возрастанию. То есть легкие элементы всплывают наверх, а тяжелые перемещаются вниз:
//Pascal const m = 1000 var arr: array[1..m] of integer; n,i, j, k: integer; begin readln(n); write ('Исходный массив: '); for i := 1 to n do begin readln(arr[i]); end; //сортировка методом пузырька for i := 1 to n-1 do for j := 1 to n-i do if arr[j] > arr[j+1] then begin k := arr[j]; arr[j] := arr[j+1]; arr[j+1] := k end;
write ('Отсортированный массив: '); for i := 1 to n do write (arr[i]:4); end.
Алгоритм сортировки на классическом языке программирования С
# define SWAP(A,B) {A=A^B;B=A^B;A=A^B;} void bubblesort(int A[], int n) { int i, j; for(i = n-1 ; i > 0 ; i--) { for(j = 0 ; j < i ; j++) { if( A[j] > A[j+1] ) SWAP(A[j],A[j+1]); } } }
Дан одномерный массив , заполненный случайным образом десятью числами из диапазона от 0 до 100. найтисамую длинную послпоследовательность чисел, по возрастанию. вывести ее и ее длину на экран.