Loading...
Processing Forum
Recent Topics
All Forums
Screen name:
nikolas278
nikolas278's Profile
2
Posts
2
Responses
0
Followers
Activity Trend
Last 30 days
Last 30 days
Date Interval
From Date :
To Date :
Go
Loading Chart...
Posts
Responses
PM
Show:
All
Discussions
Questions
Expanded view
List view
Private Message
sort
[2 Replies]
25-Jun-2012 03:04 AM
Forum:
Programming Questions
int[] num= {
54, 3, 27, 17, 4, 41, 47, 16, 63, 37
};
int minimum;
int maximum;
int currentFile=0;
int count=0;
String[] Stores = new String[num.length];
String[] data;
String[] p;
int r;
int currentFile;
int x;
ArrayList numList;
void setup() {
minimum=num[0];
maximum=num[0];
for (int m=0; m < num.length; m++) {
if (num[m]>maximum) {
maximum=num[m];
}
if (num[m]<minimum) {
minimum=num[m];
}
}
size(500, 500);
background(0);
numList=new ArrayList();
noLoop();
}
void draw() {
quicksort(num, 0, num.length-1);
for (int n=0; n<numList.size(); ++n) {
PVector V=(PVector)numList.get(n);
pushMatrix();
translate(250, 250);
fill(250, 50);
ellipse(0, 0, V.x*2.5, V.x*2.5);
popMatrix();
}
}
int partition(int x[], int left, int right) {
int i = left;
int j = right;
int temp;
int pivot = x[(left+right)/2];
while (i <= j) {
while (x[i] < pivot) {
i++;
}
while (x[j] > pivot) {
j--;
}
if (i <= j) {
temp = x[i];
x[i] = x[j];
x[j] = temp;
i++;
j--;
count=count+1;
for (int k = 0; k< num.length; k++) {
Stores[k]=x[k] + "\t";
saveStrings("Stores" + count + ".txt", Stores);
}
}
}
return i;
}
void quicksort(int x[], int left, int right) {
int index = partition(x, left, right);
if (left < index - 1) {
quicksort(x, left, index-1);
}
if (index < right) {
quicksort(x, index, right);
}
}
void keyPressed() {
currentFile++;
data=loadStrings("Stores" + m + ".txt");
for (int l=0; l<data.length; l++) {
p=split(data[l], TAB);
x=int(p[0]);
println(p[0]);
numList.add(new PVector(x, x));
}
}
//////////////////////////////////////////////
I can't draw anything.
circularSort
[3 Replies]
12-Jun-2012 05:16 AM
Forum:
Programming Questions
is it possible to visualize all steps of the quicksort process and not only the final?
int[] num= {
10, 3, 14, 8, 12, 5, 6, 7, 4, 15, 14, 8, 47, 38, 11, 125, 73, 55, 41, 1, 0
};
int minimum;
int maximum;
void setup() {
minimum=num[0];
maximum=num[0];
for (int m=0; m < num.length; m++) {
if (num[m]>maximum) {
maximum=num[m];
}
if (num[m]<minimum) {
minimum=num[m];
}
}
size(550, 550);
smooth();
noLoop();
}
void draw() {
quicksort(num, 0, num.length-1);
}
int partition(int x[], int left, int right) {
int i = left;
int j = right;
int temp;
int pivot = x[(left+right)/2];
while (i <= j) {
while (x[i] < pivot) {
i++;
}
while (x[j] > pivot) {
j--;
}
if (i <= j) {
temp = x[i];
x[i] = x[j];
x[j] = temp;
i++;
j--;
vis(x);
}
}
return i;
}
void vis(int[] vis) {
for (int y=0; y<vis.length; y++) {
float colour = map(vis[y], minimum, maximum, minimum, 255-minimum);
float angle = map(vis[y], minimum, maximum, 5, TWO_PI-5);
strokeWeight((map(vis[y], minimum, maximum, 1, 10)));
float r=vis[y]*(maximum/(minimum+1));
float r1= map(r, 0, (sq(maximum))/(minimum+1), 0, 500);
if (vis[y]<((minimum+maximum)/2)) {
pushMatrix();
translate(width/2, height/2);
noFill();
stroke(colour);
rotate(angle*random(0.1, 1));
arc(0, 0, r1, r1, 0, angle);
popMatrix();
}
else {
pushMatrix();
translate(width/2, height/2);
noFill();
stroke(colour);
arc(0, 0, r1, r1, 0, angle);
popMatrix();
}
}
}
void quicksort(int x[], int left, int right) {
background(0);
int index = partition(x, left, right);
if (left < index - 1) {
quicksort(x, left, index-1);
}
if (index < right) {
quicksort(x, index, right);
}
}
«Prev
Next »
Moderate user : nikolas278
Forum