Java 根据数组出现频次,稳定算法排序

Java 根据数组出现频次,稳定算法排序


java 根据数组出现频次,稳定算法排序(来源于中兴2020校招java工程师考题)

输入{1 3 5 6 3}

输出{3 3 1 5 6}

代码片.

import java.util.*;
class  Main
{
   public static void main(String[] args) 
   {
   		int asd[]= {1,3,5,6,3};
   		num(asd);
   }
   public static  void num(int arr[]) 
   {
   		HashMap<Integer,Integer> map=new HashMap();
   		for(int i=0;i<arr.length;i++) {
   			if(map.get(arr[i])==null)
   				map.put(arr[i],1 );
   			else
   				map.put(arr[i],map.get(arr[i])+1 );
   		}		
   		int num[]=new int[arr.length];
   		for(int i=0;i<arr.length;i++)
   		{
   			num[i]=map.get(arr[i]);
   		}
   		show("原数组               ",arr);
   		show("数组个数           ",num);
   		bubbleSort(num,arr); 		
   }
   public static void bubbleSort(int[] num,int []rank) {
   		for (int e = num.length - 1; e > 0; e--) {
   			for (int i = 0; i < e; i++) {
   				if (num[i] <num[i + 1]) {
   					swap(num, i, i + 1);
   					swap(rank, i, i + 1);
   				}
   			}
   		}
   		show("数组按频次排序",rank);
   }
   public static void swap(int[] arr, int i, int j) {
   		int tmp = arr[i];
   		arr[i] = arr[j];
   		arr[j] = tmp;
   }
   public static void show(String s,int []f){
   		System.out.print(s+" " );
   		for(int i = 0; i < f.length; i++)
   			System.out.print(f[i] + " ");
   		 System.out.println();
}
}


输出.

原数组         1 3 5 6 3 
数组个数       1 2 1 1 2 
数组按频次排序 3 3 1 5 6 
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值