华为机试题: 整型数排序(JAVA)

时间:2022-06-07 15:47:30

描述: 

要求:请实现对一整型数序列的排序操作。

需求:

1、对输入的整型数序列A,完成升序排列,将结果序列从B中输出。以整数值大小为关键字排序,即小数在前,大数在后。

2、当序列中存在多个同样大小的数时,输出序列中仅保留一个。

    

举例:

    输入序列A:76,92,34,34,59,16,59,45

    符合要求的输出序列B:16,34,45,59,76,92

 

约束:

       1、输入的序列至少含有一个整型数,否则应该返回null;

       2、输入序列中的整数值使用int类型;

  • 接口说明

/*****************************************************************************
 Description : 实现整数排序,即先将从A输入的整型数序列进行排序,剔除重复整型数,输出得到的升序序列B;
 Input       : array_A                 输入参数,输入待排序整型数序列A
 Return      : 排序后的整型数序列
 *****************************************************************************/
 public static int[] sort(int []array_A)
 {
     return null;
 }

 



package huawei;

import java.util.Arrays;
import java.util.Vector;

public final class Demo {
/*****************************************************************************
Description : 实现整数排序,即先将从A输入的整型数序列进行排序,剔除重复整型数,输出得到的升序序列B;
Input : array_A 输入参数,输入待排序整型数序列A
Return : 排序后的整型数序列
*****************************************************************************/
public static int[] sort(int []array_A)
{
if (array_A == null)
{
return null;
}

/*创建数组并复制*/
int[] temp = new int[array_A.length];
System.arraycopy(array_A, 0, temp, 0, array_A.length);
Arrays.sort(temp);

Vector<Integer> vec = new Vector<Integer>();
for(int i = 0; i < temp.length; i++)
{
if(!vec.contains(temp[i]))
{
vec.addElement(temp[i]);
}
}

int ret[] = new int[vec.size()];
vec.clear();

for(int i = 0, j = 0; i < temp.length; i++)
{
if(!vec.contains(temp[i]))
{
vec.addElement(temp[i]);
ret[j++] = temp[i];
}
}

return ret;
}
}