Hej
Chciałbym przełożyć set_difference na SCILABA w taki sposób by pasował do zadania, które dodałem niżej. Z tego też powodu nie tworzy on nam ostatecznie tablicy, a zlicza on ilość jej wszystkich elementów i tych, które są większe od zadanej liczby.
Ważne jest, aby finalny algorytm miał złożoność liniową.
Treść zadania:
Oto co udało mi się zrobić, ale mam wątpliwości o to czy jest tu złożoność liniowa. Wiem, że dobrze przełożony set_difference powinien taką mieć.
N=input("Podaj ilu elementowa ma byc pierwsza tablica: ")
T1 = int(0.5+10*rand(1,N))
T1=gsort(T1,'g','i')
M=input("Podaj ilu elementowa ma byc druga tablica: ")
T2 = int(0.5+10*rand(1,M))
T2=gsort(T2,'g','i')
//do tego miejsca jest wejście które na szybko zrobiłem. Możliwe że się zmieni.
j=1 //wskaźnik T2
i=1 //wskaźnik T1
le=0 //liczba elementów
lez=0 //liczba elementów większych od zadanej liczby
while i<=N do
if T1(i) < T2(j) then
le=le+1
if T1(i)>Z then
lez=lez+1
end
i=i+1
else
if T2(j) < T1(i) then
j=j+1
else
i=i+1
j=j+1
end
if j>M then
for q=i:N
if T1(q)>Z
lez=lez+1
end
le=le+1
end
break
end
end
end
disp(T1)
disp(T2)
disp(le)
disp(lez)
W załączniku dodaję plik zip w którym jest sce. z tym co zdołałem napisać.
Dodatkowo link do screena z programu: zdj.png
Byłbym bardzo wdzięczny za wszelkie sugestie i poprawki :D