您的位置:首页 > 编程语言 > Java开发

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

2016-02-12 23:23 316 查看
描述: 要求:请实现对一整型数序列的排序操作。
需求:
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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: