要求:请实现对一整型数序列的排序操作。
需求:
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;
}
解题思路:先进行排序,然后使用HashMap进行去重。
代码如下:
public class paixu
{
/**
* @param args
*/
public static void main(String[] args)
{
int[] a={76,92,34,34,59,16,59,45};
sort(a);
}
public static int[] sort(int []array_A)
{
int count=0;
if(array_A==null)
{
return null;
}
int len=array_A.length;
for (int i = len-1; i >0; i--)
{
for (int j = 0; j < i; j++)
{
if (array_A[j]>array_A[j+1])
{
int temp=array_A[j];
array_A[j]=array_A[j+1];
array_A[j+1]=temp;
}
}
}
Map<Integer,Integer> hm=new HashMap<Integer,Integer>();
for (int i = 0; i < len; i++)
{
if (!hm.containsValue(array_A[i]))
{
hm.put(count, array_A[i]);
count++;
}
}
int[] output=new int[count];
for (int i = 0; i < count; i++)
{
output[i]=hm.get(i);
}
return output;
}
}