clc
n=10; %設定向量維數
A=[6 2 2 3 1 5 5 5 7 3]; %測試用向量
B=[3 4 6 4 7 9 3 9 5 1]; %測試用向量
%**********以下為第壹次排序**********
[A1 index]=sort(A,'descend');
for ni=1:n
B1(ni)=B(index(ni));
end
A0=A1; %第壹次排序後結果
B0=B1; %第壹次排序後結果
%*************************************
%**********以下進行第二次排序***********
%第二次排序的思想是:從向量A1(降序排列的)中的第壹個數開始
%依次進行比較,第n個數和其後的所有數比較是否相等,出現第壹個
%不相同的數則本次比較結束並記錄下相同數的個數m1,並對這m1個相同數
%所對應的B1向量中相應位置數進行升序排列,
%下次比較時從n+m1+1個數開始
ni=1;
while ni<n
nj=ni+1;
while nj<=(n)
m=nj;
if A1(ni)==A1(m)
nj=nj+1;
else
nj=n+1;
end
end
B1(ni:(m-1))=sort(B1(ni:(m-1)));
ni=m;
end
%*************排序最終結果為A1和B1************