为了实现对两个数组进行优先级排序,用c语言有两种实现方法,
一是需要对两个数组进行排序,然后对排序后的坐标再排序,(求最小值是我自己需要)
二是直接寻找数组排序后的元素坐标,调用qsort函数进行排序,排序后的数组会存放在原数组中,那么就有两种寻找坐标,一是寻找原数组的坐标(结果一),二是寻找排序后数组的坐标,根据需要可以自己选(结果二)。
MATLAB相对要简单很多,只需要几句话就能实现,不过对于底层的原理不太好理解。
MATLAB程序:
A=[1.0,2.0,5.0,10.0,0.0,6.0,9.0];%定义两个数组
C=[6.0,2.0,5.0,10.0,7.0,8.0,9.0];
[q,r]=sort(A); %对A进行升序排列
[a,t]=sort(r); %对r进行升序排列
[l,s]=sort(C); %对C进行升序排列
[c,z]=sort(s); %对s进行升序排列
[d,m]=min(t+z); %求坐标和的最小值
结果与VS结果一一直:
VS程序代码
#include<stdio.h>
#include