Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过将颜色更改为红色来显示正在排序的行?_Java_Processing_Bubble Sort - Fatal编程技术网

Java 如何通过将颜色更改为红色来显示正在排序的行?

Java 如何通过将颜色更改为红色来显示正在排序的行?,java,processing,bubble-sort,Java,Processing,Bubble Sort,我已经完成了处理中气泡排序的可视化。我自己的下一步是希望能够通过将颜色更改为红色来查看正在排序的行。我不知道该怎么做,任何见解都会有帮助 我曾尝试在开关算法的中间加上笔划,也把它放在检查值的算法中,没有用过。 float[] lines; int i = 0; int j = 0; void setup() { //fullScreen(P2D); size(800,500); //get array of x values lines = new float[width];

我已经完成了处理中气泡排序的可视化。我自己的下一步是希望能够通过将颜色更改为红色来查看正在排序的行。我不知道该怎么做,任何见解都会有帮助

我曾尝试在开关算法的中间加上笔划,也把它放在检查值的算法中,没有用过。

float[] lines;
int i = 0;
int j = 0;

void setup() {
  //fullScreen(P2D);
  size(800,500);
  //get array of x values
  lines = new float[width];
  float len = lines.length;
  //populate each x value with a random y value 
  for (int i = 0; i < len; i++) {
    lines[i] = random(height);
  }
}    
void draw() {
  background(0);
  float len = lines.length;
  //do this for the entire array 
  if (i < len) {
     for (j = 0; j < len-i-1; j++) {
      float a = lines[j];
      float b = lines[j + 1];
      if (a > b) {
        swap(lines, j, j+1);
      }
    }
  } else {
    noLoop();
    i++;
  }

  for (int i = 0; i < len; i++) {
    stroke(255);
    line(i, height, i, height - lines[i]);
  }

}

void swap(float[] arr, int a, int b) {
  float temp;
  temp = arr[a];
  arr[a] = arr[b]; 
  arr[b] = temp;
}
float[]行;
int i=0;
int j=0;
无效设置(){
//全屏(P2D);
规模(800500);
//获取x值的数组
行=新浮动[宽度];
float len=线长度;
//用随机y值填充每个x值
对于(int i=0;ib){
交换(行,j,j+1);
}
}
}否则{
noLoop();
i++;
}
对于(int i=0;i
这是目前正在运行的代码,没有将颜色更改为红色,我包含了完整的程序,因此您可以自己尝试,看看是否可以帮助将正在移动和交换的单行更改为红色。

用于收集已交换行的索引:

e、 g

IntList swapped=new IntList();
if(a>b){
交换。追加(j);
交换。追加(j+1);
交换(行,j,j+1);
}
如果列表中包含一条线的索引,请使用其他颜色绘制该线:

e、 g

for(int i=0;i
函数
draw
可能如下所示:

void draw(){
背景(0);
IntList SWAPED=新IntList();
float len=线长度;
//对整个阵列执行此操作
如果(ib){
交换。追加(j);
交换。追加(j+1);
交换(行,j,j+1);
}
}
}否则{
noLoop();
i++;
}
对于(int i=0;i