unidad 5 informe técnico

7
INSTITUTO TECNOLOGICO SUPERIOR DE FELIPE CARRILLO INFORME TECNICO Ing. Sistemas computacionales Docente: Niels Henryk Aranda Cuevas Alumna: Rene Jesus Sosa Arana Grupo: 3er “A”

Upload: rene-sosa-arana

Post on 17-Jul-2015

49 views

Category:

Education


4 download

TRANSCRIPT

INSTITUTO TECNOLOGICO SUPERIOR DE FELIPE CARRILLO

INFORME TECNICO

Ing. Sistemas computacionales

Docente: Niels Henryk Aranda Cuevas

Alumna: Rene Jesus Sosa Arana

Grupo: 3er “A”

Burbujas

#include <iostream>using namespace std;

//Metodo Burbuja

int main()

{

int s,temp,i,j;

int a[20];

cout<<"Ingrese la cantidad de numeros a ordenar: ";cin>>s;

cout<<"Ingrese "<<s<<" elementos ";

for(i=0;i<s;i++) cin>>a[i];

for(i=s-2;i>=0;i--) {for(j=0;j<=i;j++) {

if(a[i]>a[j+1]) {

temp=a[j]; j=indicea[j]=a[j+1];

a[j+1]=temp;

Unidad 5Métodos de

ordenamiento

}}

}cout<<"Despues del ordenamiento: ";

for(i=0;i<s;i++) cout<<a[i];

return 0;s}

El método de ordenamiento burbuja su función es ordenar los valores asignados de menor a mayor Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar.

Quicksort

#include <iostream>using namespace std;

#define ARRAY_SIZE 5

void PrintArray(int* array, int n);void QuickSort(int* array, int startIndex, int endIndex);int SplitArray(int* array, int pivotValue, int startIndex, int endIndex);void swap(int &a, int &b);

int main(void){

int array[ARRAY_SIZE];int i;

for( i = 0; i < ARRAY_SIZE; i++){

cout<<"Enter an integer : "; cin>>array[i];

}

cout<<endl<<"The list you input is : "<<endl;PrintArray(array, ARRAY_SIZE);QuickSort(array,0,ARRAY_SIZE - 1);cout<<endl<<"The list has been sorted, now it is : "<<endl;PrintArray(array, ARRAY_SIZE);

cin.get();cin.get();return 0;

}

void swap(int &a, int &b){

int temp;temp = a;a = b;b = temp;

}

void PrintArray(int* array, int n){

int i; for( i = 0; i < n; i++) cout<<array[i]<<'\t';

}

void QuickSort(int* array, int startIndex, int endIndex){

int pivot = array[startIndex];int splitPoint;

if(endIndex > startIndex) {

splitPoint = SplitArray(array, pivot, startIndex, endIndex);

array[splitPoint] = pivot;

QuickSort(array, startIndex, splitPoint-1); QuickSort(array, splitPoint+1, endIndex);

}}

int SplitArray(int* array, int pivot, int startIndex, int endIndex){

int leftBoundary = startIndex;int rightBoundary = endIndex;

while(leftBoundary < rightBoundary) {

while( pivot < array[rightBoundary] && rightBoundary > leftBoundary)

{ rightBoundary--;

} swap(array[leftBoundary], array[rightBoundary]);

while( pivot >= array[leftBoundary]

&& leftBoundary < rightBoundary) {

leftBoundary++; } swap(array[rightBoundary], array[leftBoundary]);

return leftBoundary; }

Quicksort es uno de los algoritmos por excelencia utilizados para ordenar secuencias de datos Este método es una mejora sustancial del método de intercambio directo y recibe el nombre de Quick Sort por la velocidad con que ordena los elementos del arreglo. La idea

central de este algoritmo consiste en los siguiente: Se toma un elemento x de una posición cualquiera del arreglo. Se trata de ubicar a x en la posición correcta del arreglo, de tal forma que todos los elementos que se encuentran a su izquierda sean menores o iguales a x y todos los elementos que se encuentren a su derecha sean mayores o iguales a x. Se repiten los pasos anteriores pero ahora para los conjuntos de datos que se encuentran a la izquierda y a la derecha de la posición correcta de x en el arreglo.