要求:请实现对一整型数序列的排序操作。
需求:
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; } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-12 04:18:36