Está en la página 1de 3

HOJA DE TRABAJO PARA LA PRÁCTICA 1:

Ordenamiento I

NOTAS:
● No trates de economizar hojas, utiliza el espacio que sea necesario. Donde tengas que pegar código,
pega lo que se te pide. Donde tengas que pegar una captura de pantalla, intenta que el tamaño de ésta
sea como máximo ¼ de hoja carta.

Para cada uno de los siguientes reactivos deberás entregar nada más las funciones que se te piden. No descargues la hoja para
resolverla en Word o LibreOffice; resuélvela directamente aquí.

Revisa el punto 6.2.2 de la versión 1.1 de la práctica.

En la sección Post-laboratorio te pedí generar arreglos de 100000 elementos y medir el tiempo de ejecución. Anota los resultados a
continuación (campo user). Si usas Windows omite este paso:

BubbleSort: _
MergeSort: _

1.Función BubbleSort() [2p]


void BubbleSort(int list[],int len, int dir){

if(dir==0){
bubble_asc(list,len);
}
else{
bubble_des(list,len);
}
}

2.Driver program de 6.1 [1p]


#define TAM 10
enum {ASCENDING,DESCENDING};

int main(){
int list[TAM]={6,7,9,16,2,8,12,4,0,1};
print_list(list,TAM,"Antes: ");
BubbleSort(list,TAM,0);
print_list(list,TAM,"Despues: ");
}
3.Función merge_sort() de 6.2.2 [2p]
void mergeSort(int list[],int first,int last,int aux[],int dir){

if(first<last){
int mid=(first+last)/2;
mergeSort(list,first,mid,aux,dir);
mergeSort(list,mid+1,last,aux,dir);
merge(list,first,last,aux,dir);

}
}

4.Función merge() de 6.2.2 [2p]


void merge(int list[],int first,int last,int aux[],int dir){
int mid=(first+last)/2;
int x0=first;
int x1=mid;
int x2=mid+1;
int x3=last;
int index=first;

while(x0<=x1 and x2<=x3){


if(dir==0){
if(list[x0]<list[x2]){
aux[index++]=list[x0++];
}
else{
aux[index++]=list[x2++];
}
}else{
if(list[x0]>list[x2]){
aux[index++]=list[x0++];
}
else{
aux[index++]=list[x2++];
}
}

while(x0<=x1){
aux[index++]=list[x0++];
}

while(x2<=x3){
aux[index++]=list[x2++];
}

for(int i=first;i<=last;i++){
list[i]=aux[i];
}
}
5.Función ordenar() de 6.2.2 [2p]
void ordenar(int list[],int tam,int dir){
int aux[tam];
imprimir(list,tam,"Antes: ");
mergeSort(list,0,tam-1,aux,dir);
imprimir(list,tam,"Despues ");
}

6.Ejecución de 6.2.2 [1p]

También podría gustarte