Metodo de Ordenação Quick Sort [RESOLVIDO]

Boa Tarde!!!

Estava implementando um algoritmo de ordenação utilizando de recursividade mas esta dando alguns problemas… vou postar o codigo aqui quem puder ajudar ficaria grato.

[code]public class teste {

/**
 * @param args
 */
public static void main() {
	
	int vetor[]= { 100, 15, 65, 65, 76, 3, 4, 6, 8, 89 };
	quickSort(vetor, 0, vetor.length-1);
	
	
	public static  quickSort(int v[]; int esquerda; int direita)
	int esq = esquerda;
	int dir = direita;
	int pivo = v[(esq + dir) % 2];
	int troca;

	while (esq <= dir) {
		while (v[esq] < pivo) {
			esq = esq + 1;
		}
		while (v[dir] > pivo) {
			dir = dir - 1;
		}
		if (esq <= dir) {
			troca = v[esq];
			v[esq] = v[dir];
			v[dir] = troca;
			esq = esq + 1;
			dir = dir - 1;
		}
	}
	if (dir > esquerda) 
	quickSort(v, esquerda, dir);
	
	if(esq < direita)
	quickSort(v, esq, direita);
	
}

}[/code]

Pessoal consegui dar uma altera mas msmo assim não consigo fazer ele rodar… alguem pode me ajudar

[code]public class teste {

/**
 * @param args
 */

	public static void  quickSort(int v[], int esquerda, int direita){
	int esq = esquerda;
	int dir = direita;
	int pivo = v[(esq + dir) % 2];
	int troca;

	while (esq <= dir) {
		while (v[esq] < pivo) {
			esq = esq + 1;
		}
		while (v[dir] > pivo) {
			dir = dir - 1;
		}
		if (esq <= dir) {
			troca = v[esq];
			v[esq] = v[dir];
			v[dir] = troca;
			esq = esq + 1;
			dir = dir - 1;
		}
	}
	if (dir > esquerda) 
	quickSort(v, esquerda, dir);
	
	if(esq < direita)
	quickSort(v, esq, direita);
	
}
	public static void main() {
		
		int vetor[]= { 100, 15, 65, 65, 76, 3, 4, 6, 8, 89 };
		quickSort(vetor, 0, vetor.length-1);
		
		System.out.println(" " + vetor);


	}

}
[/code]

Caro VictorFarion segue o seu código corrigido!

Os erros por mim identificados foram:

1- Nome de classe sempre começa com a primeira letra maiúscula.
2- Na linha 8 você está usando o mod (%) que retorna o resto da divisão, em vez do sinal de divisão (/) que retorna o resultado da divisão.
3- Na linha 34 você esqueceu do parâmetro " String args[] " que deve ser passado no método main.
4- Na última linha que você manda imprimir " System.out.println(" " + vetor); ", você está pedindo para imprimir o endereço de memória onde o vetor está armazenado e não os valores do mesmo. Eu fiz um for que lerá todas as posições do vetor.

package exemplos;

public class Teste {

	public static void quickSort(int v[], int esquerda, int direita) {
		int esq = esquerda;
		int dir = direita;
		int pivo = v[(esq + dir) / 2];
		int troca;

		while (esq <= dir) {
			while (v[esq] < pivo) {
				esq = esq + 1;
			}
			while (v[dir] > pivo) {
				dir = dir - 1;
			}
			if (esq <= dir) {
				troca = v[esq];
				v[esq] = v[dir];
				v[dir] = troca;
				esq = esq + 1;
				dir = dir - 1;
			}
		}
		if (dir > esquerda)
			quickSort(v, esquerda, dir);

		if (esq < direita)
			quickSort(v, esq, direita);

	}

	public static void main(String args[]) {

		int vetor[] = { 100, 15, 65, 65, 76, 3, 4, 6, 8, 89 };
		quickSort(vetor, 0, vetor.length - 1);

		for (int i = 0; i < vetor.length; i++) {
			System.out.println(" " + vetor[i]);
		}

	}
}

Espero que possa ter ajudado!!
Bons estudos!!

2 curtidas

Quanto ao nome de classe, a classe compila normal com letra minuscula porém e padrão Java Bean usar o CamelCase para classes.

Muito obrigado entendi sim como foi feito e assim rodou bacaninha muito obrigado valew a todos…

abraxxx e bom feriado a todos…