Witajcie moi mili!
Potrzebuję pomocy z algorytmem, myślę że znajdzie się tu jakiś "programista", może przejdę od razu do rzeczy:
Algorytm sprawdza, czy dwie tablice są anagramami np. [1,2,3,4] i [2,3,1,5] nie są, ale np. [1,2,3,4] i [2,3,1,4] są. (tablice muszę być takie, aby przestawiając elementy w jednej z nich otrzymać drugą).
W skrócie mój plan działania:
1. Wprowadzenie danych
2. Sprawdzenie, czy długość (ilość liczb) w tablicach x i y jest taka sama.
3. Posortowanie tablic (np. w kolejności rosnącej)
4. Sprawdzanie element po elemencie
Doszedłem do czegoś takiego (docelowo ma to być pseudokod mieszany z językiem C), w tej chwili jest to powiedzmy Pascal

A,B to tablice jednowymiarowe
i oznacza iterację wiersza tablicy (A lub B)
w1, w2 to liczba wierszy (elementow) tablicy odpowiednio A/B
asort, bsort - zmienne pomocnicze do sortowania bąbelkowego
Pomijając już wprowadzenie danych i deklarację zmiennych wymyśliłem coś takiego
while w1=w2 do
begin
for (i=0 to w1-1) && (i=0 to w2-1) do
if A[i] > A[i+1] then
begin
asort:=A[i+1];
A[i+1]:=A[i];
A[i]:=asort
end;
if B[i] > B[i+1] then
begin
bsort:=B[i+1];
B[i+1]:=B[i];
B[i]:=bsort
end;
for (i=0 to w1) do
if A[i]=B[i] then
wyświetl("Tablice sa anagramami")
end;
else wyświetl("Tablice nie sa anagramami")
Potrzebuję opinii czy to ma szansę działać, co jest ok a co jest nie ok i czy można zrobić to prościej, tak żeby zmniejszyć złożoność obliczeniową. (stosując quicksort?)