说明:
需提供一个数组order作为排序依据,以及一个待排序数组
无返回值,会把待排序数组按要求排序
private static void getOrder(String[] a,String[] order)
{
for(int i=0;i<a.length-1;i++)
{
for(int j=i;j<a.length;j++)
{
int qian = 0;
int hou = 0;
for(int k=0;k<order.length;k++)
{
if(a[i].equals(order[k]))
{
qian = k;
}
if(a[j].equals(order[k]))
{
hou = k;
}
}
if(hou <= qian)
{
String lin = a[i];
a[i] = a[j];
a[j] = lin;
}
}
}
}
其中,测试如下:
String[] order = new String[]{"A*","A","B","C","D","E"};
String[] a = new String[5];
//期望A*A*A
a[0] = "B";
a[1] = "A*";
a[2] = "A";
a[3] = "A*";
a[4] = "B";
getOrder(a,order);
结果为:A*A*ABB
原理依据冒泡排序法