Documentos de Académico
Documentos de Profesional
Documentos de Cultura
import java.io.*;
Problema. Ordenar un archivo (suponiendo que slo N lneas class Sortfile
caben en memoria) {
Solucin. Algoritmo de Cascada. //arreglo para N lneas
protected static int N=100, n=0;
N de lneas: N N N N protected String[]linea=new String[N];
archivo: ...
public void main(String[]args)throws IOException
ordenar {
arreglo //grabar archivo auxiliar vacio
grabar PrintWriterW B=new PrintWriter(
archivo A1 new FileWriter(A2.txt));
merge B.close();
archivo A2 //abrir archivo y nombrar archivos auxilares
BufferedReader A=new BufferedReader(
merge new FileReader(args[0]));
archivo A1 String in="A2.txt", out="A1.txt";
...
archivo A1/2
//repetir hasta terminar archivo //Leer desde (posicin del cursor de) archivo
while(true) //un mximo de N lneas.
{ //Entregar tambin n de lneas ledas.
//leer n lneas de archivo(max N) en arreglo
n=leerLineas(A,linea,N);
if(n==0) break; static public int leerLineas
(BufferedReader archivo, String[]lineas, int N)
//ordenar arreglo de n lneas throws IOException
quicksort(linea,0,n-1); {
int n=0;
//merge de arreglo y archivo in(resultado en out)
merge(linea,n,in,out);
String linea;
while((linea=archivo.readLine())!=null){
//intercambiar rol de archivos if(n>=N) U.abortar(max de lineas =+N);
String aux=in; in=out; out=aux; lineas[n++] = linea;
} }
A.close(); return n;
U.println("resultado: archivo "+in);
}
}
1
clase 29: Ordenar Archivos
2
clase 29: Ordenar Archivos
//comparar x con elemento que est en la mitad //comparar x con elemento que est en la mitad
int im=(ip+iu)/2; //indice del medio int im=(ip+iu)/2; //indice del medio
int c=x.compareTo(y[im]); int c=x.compareTo(leerRegistro(y,im));
//si son iguales,devolver ndice de mitad //si son iguales,devolver ndice de mitad
if(c==0) return im; if(c==0) return im;
//si no, buscar en mitad del arreglo //si no, buscar en mitad del archivo
if(c<0) iu=im-1; else ip=im+1; if(c<0) iu=im-1; else ip=im+1;
return indice(x,y,ip,iu); return indice(x,y,ip,iu);
} }
rbol
3
clase 29: Ordenar Archivos
Metodologa Contenidos
Pedagoga
1. Fundamentos de programacin
orientacin al aprendizaje
clases de ctedra y auxiliares centradas en problemas 2. Programacin orientada a objetos
ejercicios clases obligatorios 3. Listas y tablas de valores
Tecnologa 4. Computacin numrica
lenguajes Java y Matlab 5. Bsqueda y ordenamiento de informacin
ambiente Internet/web
Evaluacin
NF (nota final): 70%NC+30%NT (NC,NT 4) Ejercicios
NT (nota tareas): promedio 5 tareas (1 por cap)
Si 3NT<4 y NC 4, NF=I + tarea extra se considera promedio promedio promedio
de los 19 mejores c1,c2,c3 ejercicios
NC (nota control): prom ponderado controles
si tiene menos de 19, 5,5 cualquiera
control contenidos semana pond NF=I + tarea(s) extra(s) 5,4 2.0
1 1 4 20 % sirven para eximirse
5,3 2.5
2 2 8 20 % de examen de acuerdo a
la sgte tabla: 5,2 3.0
3 3y4 15 20 %
5,1 3.3
examen 1a5 9 julio 40 %
5,0 3.5