![](/img/trans.png)
[英]Java HashMap associative multi dimensional array can not create or add elements
[英]How can I add up the elements of a row in a 2 dimensional array Java
嘿,我正在尝试为最近最少使用的分页算法编写模型。 我对Java和编码相对较新,我只是在代码中找不到错误。
我想用二维数组实现空闲内存,当引用一行时,我将相应行中的位更改为1,并将相应列中的位更改为0.然后我想在每行中添加元素并对它们进行排序使用bubblesort算法。
存在我的问题:似乎我无法得到加法或排序权。 我希望有人可以帮助我,因为无论我尝试什么,它似乎都行不通。
这是我的代码的一部分,因为它似乎在stackoverflows规则,我不能发布整个代码。 page [] []是我用来改变字节的2d数组。
我会非常感激任何帮助,因为我正在缓慢但肯定地失去动力。
// array for bubblesort and adding up of rows
int sort[] = new int[page.length];
int sumtemp = 0;
int sum = 0;
for (int i = 0; i < page.length; i++) {
for (int j = 0; j < page[i].length; j++) {
sumtemp += page[i][j];
sum = sumtemp;
}
for (i = 0; i < page.length; i++)
sort[i] = sum;
sumtemp = 0;
}
// bubblesort
int n1 = sort.length;
int temp = 0;
for (int i = 0; i < n1; i++) {
for (int j = 1; j < (n1 - i); j++) {
if (sort[j - 1] > sort[j]) {
// sort
temp = sort[j - 1];
sort[j - 1] = sort[j];
sort[j] = temp;
}
}
}
我的输出:它一直工作到最后一个输出,其中要删除的页面应为5而不是4:
内存中应包含多少页?
五
您要引用哪个页面? 请选择1到5之间的数字。完成参考后,请输入
4
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
1 1 1 0 1
0 0 0 0 0
要删除的页面= 1
您要引用哪个页面? 请选择1到5之间的数字。
你完成了参考,请输入
3
0 0 0 0 0
0 0 0 0 0
1 1 0 1 1
1 1 0 0 1
0 0 0 0 0
要删除的页面= 1
您要引用哪个页面? 请选择1到5之间的数字。完成参考后,请输入
1
0 1 1 1 1
0 0 0 0 0
0 1 0 1 1
0 1 0 0 1
0 0 0 0 0
要删除的页面= 5
您要引用哪个页面? 请选择1到5之间的数字。完成参考后,请输入
2
0 0 1 1 1
1 0 1 1 1
0 0 0 1 1
0 0 0 0 1
0 0 0 0 0
要删除的页面= 4
您要引用哪个页面? 请选择1到5之间的数字。完成参考后,请输入
这应该是冒泡排序逻辑:
for (int i = 0; i < n1; i++) {
for (int j = 0; j < (n1 - i - 1); j++) {
if (sort[j + 1] > sort[j]) { //ascending order
// sort
temp = sort[j + 1];
sort[j + 1] = sort[j];
sort[j] = temp;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.