直接上代码:

 /**
* Name: 求数组中元素重复次数对多的数和重复次数
* Description:
* 数组中的元素可能会重复,这个方法可以找出重复次数最多的数,同时可以返回重复了多少次。
* 但需要知道这个数组中最大的元素是多少,如果无法确定,就悲剧啦~
*
* @param array目标数组;
* max数组中数据的最大值;
* @return 返回一个包含重复次数最多的数(value)和重复次数(maxCount)的map集合;
* 内部出现异常,默认返回0;
* @throws
* @Author 杨元
* Create Date: 2013-11-1 上午11:25:08
*/
public static Map<String, Integer> arraySearch(int[] array,int max){
//结果集合
Map<String, Integer> resultMap = new HashMap<String, Integer>();
//重复的次数
int maxCount = 0;
//重复次数对多的数
int value = 0; try{
//初始化数据数组,用来存放每个元素出现的次数
int[] dataArray = new int[max+1]; //遍历要查找的数组,以每个元素为下标,直接定位数据数组,进行+1操作,表示出现了一次
for(int i : array){
dataArray[i]++;
} //找到数据数组中最大值
for(int i=0;i<dataArray.length;i++){
if(dataArray[i]>maxCount){
maxCount=dataArray[i];
value=i;
}
}
}catch (Exception e) {} resultMap.put("maxCount", maxCount);
resultMap.put("value", value); return resultMap;
} /**
* Name: 比较两个字符串大小
* Description: 比较的规则和数据库中的order by效果一致;
* null自动转为空,空字符串最大;
*
* @param first 要比较的第一个字符串;
* second 要比较的第二个字符串;
* @return first大于second返回正数;
* first等于second返回0;
* first小于second返回负数;
* 内部异常默认返回0;
* 返回值非固定值哦~~;
* @throws
* @Author 杨元
* Create Date: 2013-11-2 上午10:10:04
*/
public static int compareString(String first,String second){
int result = 0; try{
//null转空
first = first==null?"":first;
second = second==null?"":second; //预先记录字符串长度,避免反复读取
int firstLength=first.length();
int secondLength=second.length(); //处理含有空串的特殊情况
if("".equals(first) || "".equals(second)){
//谁长谁小
result = secondLength-firstLength;
}else{
//临时空间,用来存放ascii码总和
int firstCount = 0;
int secondCount = 0;
//用纯运算得出两个数中较小的数,实在是bt
int minLength = (secondLength*(firstLength/secondLength) + firstLength*(secondLength/firstLength))/(firstLength/secondLength + secondLength/firstLength);
//按两个字符串中较短的位数去逐位截取,防止越界
for(int i=0;i<minLength;i++){
//求ascii码和
firstCount+=first.substring(i,i+1).getBytes()[0];
secondCount+=second.substring(i,i+1).getBytes()[0];
//和不相等,说明已经比较出了大小
if(firstCount!=secondCount){
break;
}
} if(firstCount==secondCount){
//长度长的大
result = firstLength-secondLength;
}else{
//总和大的大
result = firstCount-secondCount;
}
}
}catch (Exception e) {} return result;
}

这是小菜利用闲暇时间所写。。

小菜觉得这两个算法仅仅是实现了而已,效率应该不是很高,但还可以凑合用。。。也可以给像俺这样的菜鸟提供一个思路。。。

代码中有详细的注释,小菜就不多说啦~

献上两个java小算法的更多相关文章

  1. 第一章 大体知道java语法1----------能写java小算法

    很多人开始学习java时,都是抱着诸如<Thinking in java>.<疯狂java>等书籍,从前到后慢慢翻看,不管其内容重要与否,也不关心自己以后能否使用到.我的建议是 ...

  2. java 小算法

    //鸡兔同笼 20个头 58腿 for(int a=0;a<=20;a++) { int b = 20-a; if((2*b+4*a)==58) { System.out.println(a+& ...

  3. 两个java小练习

    网上看到的一个小练习,自己写了一个,但是时间限制并不符合,并且貌似还有些小问题,暂时放在这儿,代码格式什么的也不太规范. 1.班级排名时间限制: 1000ms 内存限制: 65536kB 描述 信息科 ...

  4. java小算法—大衍数列

    题目:    中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理. 它的前几项是:0.2.4.8.12.18.24.32.40.50 ... 其规律是:对偶数项,是序号平 ...

  5. 屏幕上两点画线+DDALine算法

    编译环境VS2017+EasyX #include "stdafx.h" #include"graphics.h" void DDALine(int x0, i ...

  6. 史上最全的java随机数生成算法分享(转)

    这篇文章主要介绍了史上最全的java随机数生成算法,我分享一个最全的随机数的生成算法,最代码的找回密码的随机数就是用的这个方法 String password = RandomUtil.generat ...

  7. Java垃圾收集算法介绍

    垃圾回收器GC(Garbage Collection) 一.引用计数算法(Reference Counting) 介绍:给对象添加一个引用计数器,每当一个地方引用它时,数据器加1:当引用失效时,计数器 ...

  8. Java排序算法之直接选择排序

    Java排序算法之直接选择排序 基本过程:假设一序列为R[0]~R[n-1],第一次用R[0]和R[1]~R[n-1]相比较,若小于R[0],则交换至R[0]位置上.第二次从R[1]~R[n-1]中选 ...

  9. Java与算法之(13) - 二叉搜索树

    查找是指在一批记录中找出满足指定条件的某一记录的过程,例如在数组{ 8, 4, 12, 2, 6, 10, 14, 1, 3, 5, 7, 9, 11, 13, 15 }中查找数字15,实现代码很简单 ...

随机推荐

  1. RegExp 对象的三个方法:compile()、exec()、test()

    这三个都是RegExp对象下的三个方法,使用方法是一致得. 使用方法:RegExpObject.方法() 方法解析:其实就是根据定义好的正则对象,调用对应的方法. 1.RegExpObject.com ...

  2. MFC 配合 protobuff libevent 实现的Socket 的GM工具 框架

    MFC 配合 protobuff libevent 实现的Socket 的GM工具 框架

  3. elasticsearch Java API汇总

    http://blog.csdn.net/changong28/article/details/38445805#comments 3.1 集群的连接 3.1.1 作为Elasticsearch节点 ...

  4. node.js 基础学习笔记3 -http

    http模块,其中封装了一个高效的HTTP服务器和一个建议的HTTP客户端 http.server是一个基于事件的HTTP服务器 http.request则是一个HTTP客户端工具,用户向服务器发送请 ...

  5. ssh框架整合---- spring 4.0 + struts 2.3.16 + maven ss整合超简单实例

    一 . 需求 学了这么久的ssh,一直都是别人整合好的框架去写代码,自己实际动手时才发现框架配置真是很坑爹,一不小心就踏错,真是纸上得来终觉浅! 本文将记录整合struts + spring的过程 , ...

  6. Samba服务器搭建配置

    本次环境: 服务端-centos6.8-192.168.2.200 客户端1-centos6.8-192.168.2.201 客户端2-Windows7-192.168.2.104 假设条件如下: 使 ...

  7. Swift 遍历数组元素

    ..<Array.count { Array[index] } for (index, element) in Array.enumerate() { print(("\(index+ ...

  8. css省略号

    效果图如下: 效果图如下:

  9. 【转】HTTP状态码(HTTP Status Code)

    原文链接:http://www.chaoji.com/features/httpstatus.aspx 一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - ...

  10. StyleCop源码分析

    前言: 由于最近在进行项目配置,配置内容:根据一个结构体,一一对应地配置xml文件(两个) 写一个和此结构体对应的类(只包含属性,字段).反复配置后,觉得太繁琐,因此想到使用程序完成自动配置,网上搜索 ...