我必須構建一個算法,打印表格中每個數字大於其右側所有數字的算法。例A = {93,24,57,29,41}。應打印93,57,41。這是我做的:在表格中打印每個數字大於其右側的所有數字
Algorithm leader(A[0:n-1],n)
k=0;
for i=0 to n-2 do
{ for j=i+1 to n-1 do
{ if A[i]>A[j]
then {k=k+1;
B[k]=A[i];}}
k=k+1
B[k]=A[n-1] //Adds the last number of the table.
return B;
如果從右向左走? – MBo
@MBo它也可以是這種方式,但我想知道這是否正確 – Albanian
不,您將數字放入結果數組中,當它大於任何右邊的數字時。您應該計算小於A [i]的數字,並且只有在內部迭代(j)之後,如果計數的數字與檢查的數字匹配(n - 1 - i),您應該將其推入結果數組(B)。 –