int[] x=new int[100];
int[] y=new int[100];
谁能用最高效率的方法求出x和y中相同的元素并赋给数组c;
不要说用双循环,那效率不是最高的
int[] y=new int[100];
谁能用最高效率的方法求出x和y中相同的元素并赋给数组c;
不要说用双循环,那效率不是最高的
解决方案 »
- spring的注解注入问题。。。。。。。
- 异常提示这行有错JSONObject obj = JSONObject.fromObject(map);可这从何错起呢?也未用到Morpher类
- 奇怪的乱码问题
- common.fileupload上传文件到solaris服务器,被permission denied
- jxl 导入 excel 问题
- 求救,得到某一年的第一个星期天的算法,是怎么样的啊?
- 发布JSP
- java实现软件自动更新问题!!!请高手解答
- <html:errors/>?
- 在线求助,吃饭前结帐!50分
- 使用velocity+struts+spring+hibernate+mysql来开发的时候遇到中文问题
- 很感谢大家这么快帮我解决问题,我在问一个问题onBlur和onClick有什么区别吗?
for(int i = 0 ; i < 100 ; i++){
if (x[i] = y [i]){
c[k] = x[i];
k++;
}
}
给出伪代码,暂不考虑数据容错:
const int ARRAY_LEN = 100; //A,B 数组长度,C为A+B长度的和
int mapping( const int& data[], const int i ) //映射公式
{
int index = data[i] % ( ARRAY_LEN * 2 );
for ( int t = 0; t < ARRAY_LEN * 2; ++t ){
if ( C[index] == EMPTY || C[index] == data[i]){
return index;
} else if ( C[index] != data[i] ){
index = ( index + 1 ) % ARRAY_LEN;
}
} }int main()
{
int index;
for ( int i = 0; i < ARRAY_LEN; ++i ) {
index = mapping( A, i );
C[index] = A[i];
index = mapping( B, i );
C[index] = B[i];
}
//...
}从数学的概念来说,也就是A和B两集合,取他们的交集C。实现方法有很多种。
改为
index = ( index + 1 ) % ( ARRAY_LEN * 2); //也就是取C数组的下标,但是不能越界的意思
int[] y = new int[100];
int[] c;
Map aMap = new HashMap();
List aList = new ArrayList();
for(int i = 0 ; i < 100 ; i++){
aMap.put(String.valueOf(x[i]),String.valueOf(x[i]));
}
for(int i = 0 ; i < 100 ; i++){
Object obj = aMap.get(String.valueOf(y[i]));
if (obj != null) {
aList.add(String.valueOf(y[i]));
}
}
c = new int[aList.size()];
for (int i = 0; i < aList.size(); i++) {
c[i] = ((Integer)aList.get(i)).intValue();
}
while(j<100){
if(a[i]==b[j]){
c[k++]=a[i];
}else{
if(i<100){i++;continue;}
}j++;
}
2,对于Hash的说法,到底能不能提高效率?100*100对于CPU来说不到一个时钟周期已经算完,走Hash的话,存储的时候要先String化,再根据hashCode存储到对应的Table中,读取Hash时,也要先String化,再根据HashCode找到对应的桶,还要经过若干次的遍历找到值,真的提高了效率吗?
ZhangYv(暴雪公司首席水管工)的哈希算法也是两个循环呀.