您的位置:首页 > 编程语言 > Java开发

java设定窗口步长,依次统计窗口内数值总和

2015-06-09 14:33 274 查看
import java.util.Arrays;

public class test2 {

public static void main(String[] args) {
int winSize = 3;
int moveStep = 2;
int total = 9;

System.out.println("样本为:");
for(int i=0;i<total;i++){
System.out.print(i+" ");
}
System.out.println("");
System.out.println("窗口大小为:"+winSize);
System.out.println("步长大小为:"+moveStep);

int[] cycleArray = new int[winSize];
int count = 0;
int addPoint = winSize;
// 参数初始化
System.out.print("窗口{ ");
for (int i = 0; i < winSize; i++) {
cycleArray[i] = i;
count += cycleArray[i];
System.out.print(cycleArray[i]+" ");
}
System.out.print("}的数据总和为:"+count);
System.out.println("");

for (int i = winSize; i < total; i = i + moveStep) {
//先去除前moveStep项
int add = addPoint;
for (int j = 0; j < moveStep; j++) {
count += (add+j);
count -= cycleArray[addPoint % winSize];
cycleArray[addPoint % winSize] = (add+j);
addPoint++;
}
System.out.print("窗口{ ");
int[] array = new int[winSize];
for(int k=0;k<winSize;k++){
array[k] = cycleArray[k];
}
for (int j = 0; j < winSize; j++) {
Arrays.sort(array);  //进行排序
System.out.print(array[j]+" ");
}
System.out.print("}的数据总和为:"+count);
System.out.println("");
}
}

}


  


样本为:
0 1 2 3 4 5 6 7 8
窗口大小为:3
步长大小为:2
窗口{ 0 1 2 }的数据总和为:3
窗口{ 2 3 4 }的数据总和为:9
窗口{ 4 5 6 }的数据总和为:15
窗口{ 6 7 8 }的数据总和为:21
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: