n**d 发帖数: 112 | 1 要求是输入n个数 利用归并排序(MergeSort)来排序 同时计算元素的重复次数(重复的
只保留一个)
例子:
输入是
8
1
1
1
2
2
5
2
1
输出就是
3
1 4
2 3
5 1
8和3是输入输出数组的个数,输出的4 3 1是重复个数
老师给了个提示:
每一个输入值应该关联一个重复值。归并的时候,要在两个序列的现有数值中检查==条
件,以确定重复数的个数。 | n**d 发帖数: 112 | 2 我单独写了mergesort
import java.util.InputMismatchException;
import java.util.Scanner;
public class MergeSort
{
public int[] sort(int[] data)
{
int[] temp=new int[data.length];
mergeSort(data,temp,0,data.length-1);
return data;
}
private void mergeSort(int[] data,int[] temp,int l,int r)
{
int mid=(l+r)/2;
if(l==r) return ;
mergeSort(data,temp,l,mid);
mergeSort(data,temp,mid+1,r);
for(int i=l;i<=r;i++)
| n**d 发帖数: 112 | 3 也找了一个用hash实现计数功能的 但是就是不知道怎么和在一起。。麻烦各位大师帮
帮忙
import java.util.HashMap;
import java.util.InputMismatchException;
import java.util.Map;
import java.util.Scanner;
public class SortUniqueInt
{
public static void main(String[] args)
{
Map result = new HashMap();
Scanner input = new Scanner(System.in);
try
{
int n = input.nextInt();
while(n>0)
{
int number = input.nextInt( | a****i 发帖数: 1182 | 4 map没法index,建议用list
【在 n**d 的大作中提到】 : 也找了一个用hash实现计数功能的 但是就是不知道怎么和在一起。。麻烦各位大师帮 : 帮忙 : import java.util.HashMap; : import java.util.InputMismatchException; : import java.util.Map; : import java.util.Scanner; : public class SortUniqueInt : { : public static void main(String[] args) : {
|
|