estuve estudiando el algoritmo para utilizar el metodo de ordenacion de datos llamado QuickSort, y pues realice el codigo en java con mucha facilidad, ya que es el lenguaje de programacion que manejo, al encontrar la utilizad de este codigo en java quize pasarlo a php ya que pienso que tambien podria ser muy util.. el problema es que no recuerdo muchas cosas de php y me gustaria que me ayudaran a pasar el codigo java a codigo php.. el problema es que no me acuerdo como enviar valores de retorno =/
el codigo es el siguiente en java
[java]
public class ordenador {
int aux,cont1,cont2;
boolean cambios;
public int[] ordQuickSort(int num[]){
PrintArray(num);
return quicksort2(num,0,num.length-1);
}
private int[] quicksort2(int num[],int PuntIzq,int PuntDer){
if(PuntIzq>=PuntDer){
return num;
}
int i = PuntIzq,d = PuntDer;
if(PuntIzq!=PuntDer){
int piv;
int aux1;
piv = PuntIzq;
while(PuntIzq!=PuntDer){
while(num[PuntDer]>=num[piv]&&PuntIzq<PuntDer){
PuntDer--;
}
while(num[PuntIzq]<num[piv]&&PuntIzq<PuntDer){
PuntIzq++;
}
if(PuntDer!=PuntIzq){
aux1 = num[PuntDer];
num[PuntDer]= num[PuntIzq];
num[PuntIzq]= aux1;
PrintArray(num);
}
if(PuntIzq==PuntDer){
quicksort2(num, i, PuntIzq-1);
quicksort2(num, PuntIzq+1, d);
}
}
}else
return num;
return num;
}
private void PrintArray(int[] arr){
String imp= "";
for (int i = 0; i < arr.length; i++) {
if(i != arr.length-1){
imp = imp + arr[i]+",";
}else{
imp = imp + arr[i]+"";
}
}
System.out.println("Interaccion numero: "+ imp);
}
}
[/java]
Este codigo funciona perfectamente en java.. y bueno en php esto es lo que tengo
<?php
class quickSort{
private $num;
private $arr;
public function __construct(){
$this->num = array();
$this->arr = array();
}
public function ordQuickSort($num){
printArray($num);
return quicksort2($num,0,num.length-1);
}
private function quicksort2($num, $puntIzq, $puntDer){
if(PuntIzq>=PuntDer){
return num;
$i = $puntIzq;
$d = $puntDer;
if($puntIzq!=$puntDer){
$piv;
$aux;
$piv = $puntIzq;
while($puntIzq!=$puntDer){
while($num[$PuntDer]>=$num[$piv]&&$PuntIzq<$PuntDer){
$puntDer--;
}
while($num[$PuntIzq]<$num[$piv]&&$PuntIzq<$PuntDer){
$PuntIzq++;
}
if($puntDer!=$puntIzq){
$aux = $num[$puntDer];
$num[$puntDer]= $num[$puntIzq];
$num[$puntIzq]= $aux;
printArray();
}
if($puntIzq==$puntDer){
quicksort2($num,$i,$puntIzq-1);
quicksort2($num, $PuntIzq+1, $d);
}
}
}else{
return $num;
}
return $num;
}
}
private function printArray($arr){
$imp = "";
for($i = 0; $i < sizeof($arr); $i++){
if($i != sizeof($arr)){
$imp = $imp + $arr[$i] . ",";
}else{
$imp = $imp + $arr[$i] . "";
}
}
}
}
?>
<?php
?>
Eso seria lo que he hecho.. tengo problemas con los metodos que envian un tipo de dato de retorno...
por su respuesta Muchas gracias. =)