Pessoal eu to trabalhando pela primeira vez com quicksort no java. Porem esta dando erro static no meu programa. Gostaria de saber como corrigir este problema!
import java.util.*;
public class desafio{
public static void main(String args[]){
int vet[] = {157,457,12,10000,86,251,0,869,1};
int v1[] = new int[4];
int v2[] = new int[4];
int na =0, n =0, i=0;
int maior =0, pos=0;
/*Instrução para colocar os numeros*/
/*Instrução para achar o maior numero e sua posição dentro do vetor*/
for( i=0; i<9; i++){
if(vet[i]> maior)
maior = vet[i];
pos = i;
}
System.out.print(" O maior numero do vetor de nove posicoes e: " + maior + "\n");
/**/
for(int h=0; h <vet.length;h++){
System.out.println(vet[h]);
}
for(int j=0; j<4; j++){
v1[j]=vet[j];
System.out.print(" "+v1[j]);
}
for(int d=0; d<4;d++){
v2[d]=vet[d+5];
System.out.print(" "+v2[d]);
}
quick(0,v1.length - 1, v1);
System.exit(0);
}
public void quick(int p, int q, int a[]){
if(p<q){
int x = part(p,q, a);
quick(p, x-1, a);
quick(x + 1, q, a);
}
}
public int part(int p, int q, int a[]){
int j = p -1;
int aux =a[q];
for(int i=p; i<=q; i++){
if(a[i]<= aux)
troca(a, i, ++j);
}
return j;
}
public void troca(int a[], int x, int y){
int aux = a[x];
a[x]=a[y];
a[y]=aux;
}
}
O erro é:
non-static method quick(int,int,int[]) cannot be referenced from a static context quick(0,v1.length - 1, v1);
To usando a ferramenta NetBeans para o tranpo…
Isso não é erro de lógica,Correto?