Imagen:
Código:
ShakerSort.cpp:
#include "ShakerSort.h" void main(){ ShakerSort SK; int n; do{cout<<"Cuantos elementos desea ingresar: ";cin>>n;}while(n<1||n>100); for(int i=0;i<n;i++){ cout<<endl<<"Dato["<<i+1<<"]: ";cin>>SK.vector[i]; } system("cls"); cout<<endl<<endl<<"Vector original:"<<endl<<endl; for(int i=0;i<n;i++){ cout<<SK.vector[i]<<" "; } SK.shakerSort(SK.vector,n); cout<<endl<<endl<<"Vector Ordenado Con El Metodo Shaker Sort (Sacudida):"<<endl<<endl; for(int i=0;i<n;i++){ cout<<SK.vector[i]<<" "; } system("pause>null"); }
ShakerSort.h:
#include <iostream> #include <windows.h> using namespace std; class ShakerSort{ public: int vector[100]; void shakerSort(int[] ,int ); }; void ShakerSort::shakerSort(int v[],int N){ int i = 0 , izq = 1 , der = N-1 , k = N-1 , aux = 0; while( der >= izq ){ for( i = der ; i>= izq ; i-- ) if( v[i-1] > v[i]){ aux = v[i-1]; v[i-1]=v[i]; v[i]=aux; k=i; } izq = k + 1; for( i = izq ; i <= der ; i++) if( v[i-1] > v[i] ){ aux = v[i-1]; v[i-1]=v[i]; v[i]=aux; k=i; } der = k-1; } }
Descarga el código fuente desde aquí.