Metodos De Busqueda Y Ordenamiento
private function buscar(e:MouseEvent):void {
switch (int(cmb_Busq.value) )
{
case 1: busquedaConBandera(); break;
case 2: busquedaBinaria(); break;
case 3: busquedaSecuencial(); break;
default : mensaje_txt.text = "ERROR"
}
busq_txt.text = cmb_Busq.text;
cmb_Busq.selectedIndex = 0;
}
private functionbusquedaSecuencial():void {
var encontrado:Boolean = false;
var mensaje:String ="";
for (var i:int = 0; i < _myArray.length; i++) {
if (getmyArray(i) == Number(buscar_txt.text)) {
encontrado = true;
mensaje = mensaje + "\n" + buscar_txt.text + ' encontrado en la pos '+ i
}
}
if (!encontrado){
mensaje_txt.text = buscar_txt.text +' No Encontrado '}
else {
mensaje_txt.text = mensaje;
}
}
private function busquedaBinaria():void {
var dato:Number = Number(buscar_txt.text);
var _liminf:int = 0;
var _limsup:int = _myArray.length - 1 ;
var _central:int;
var _repetir:int = 0;
var _encontrado:Boolean = false;
while (_encontrado == false && _liminf <= _limsup){
if (dato == getmyArray(_liminf)){
_encontrado = true;
_central = _liminf;
}
_liminf = _liminf + 1;
}
while (_liminf <= _limsup)
{
if (dato == getmyArray(_liminf))
{
_repetir = _repetir + 1;
}
_liminf = _liminf + 1;
}
if (_encontrado == true)
mensaje_txt.text = String("Elelemento " + dato + " se encontro en la posicion: " + _central + " y se repite " + _repetir + " veces más");
else
mensaje_txt.text = String("El elemento " + dato + " no existe en el arreglo");
}
private function busquedaConBandera():void {
if (buscabandera(Number(buscar_txt.text))) {
visualizabandera()
}
else
{
mensaje_txt.text = "El numero"+buscar_txt.text+" no encontrado";
}
num_txt.text = "";
num_txt.setFocus()
}
public function buscabandera(num:Number):Boolean {
var bandera:Boolean
for (var pos:int = 0; (pos <= _myArray.length - 1) && (bandera == false) ; pos++)
{
if (num == getmyArray(pos)) //si el valor que hay en el array es igual al digitado
{
aux = pos;bandera = true;
}
}
return bandera
}
private function visualizabandera():void { mensaje_txt.text = "El numero " + num_txt.text + " esta en la posicion " + aux; }
//Ordenamientos
private function ordenar(e:MouseEvent):void
{
switch (int(cmb_Ord.value) )
{
case 1: OrdShell(_myArray); break;
case 2:OrdQuickSort(_myArray,0,_myArray.length); break;
case 3: OrdSeleccion(); break;
case 4: OrdInsercion(); break;
case 5: OrdBorbuja(); break;
default : mensaje_txt.text = "ERROR"
}
mostrar(_myArray, ListOrd);
ord_txt.text = cmb_Ord.text;
cmb_Ord.selectedIndex = 0;
}
private function OrdBorbuja():void
{
var aux:int;
for (var i:int = 0; i <= (_myArray.length - 1) - 1 ; i++)for (var j:int = 0; j <= (_myArray.length - 1) - 1 ; j++)
if (getmyArray(j) > (getmyArray(j + 1))) {
aux = getmyArray (j);
setmyArray(getmyArray(j + 1), j);
setmyArray(aux, j + 1 );
}
}
private function OrdInsercion():void
{
var dato:int;
var aux:int;
var pass:Boolean;
for (var i:int = 1; i < _myArray.length; i++)
{dato = getmyArray(i);
aux = i - 1;
pass = false;
while ((pass == false) && (aux >= 0))
{
if (dato < getmyArray(aux))
{
setmyArray(getmyArray(aux),aux+1);
aux = aux - 1;
}
else
{
pass = true;
}
}
setmyArray(dato,aux + 1);
}
}
private function OrdSeleccion():void...
Regístrate para leer el documento completo.