unidad 5 informe técnico
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.