Professional Documents
Culture Documents
cpp
// En el cdigo usamos la clase vector (#include <vector.h>) para crear los vector
es,
// obviamente funciona igual de bien si se utilizan los arrays tipo C: TIPO V[]
template <class T, class U>
void fusiona(vector<T>& v, U ini, U med, U fin) {
vector<T> aux(fin - ini + 1);
int i = ini; // ndice de la parte izquierda
int j = med + 1; // ndice de la parte derecha
int k = 0; // ndice del vector aux
/* Mientras ninguno de los indices llegue a su fin vamos realizando
comparaciones. El elemento ms pequeo se copia al vector aux */
while (i <= med && j <= fin) {
if (v[i] < v[j]) {
aux[k] = v[i];
i++;
}
else {
aux[k] = v[j];
j++;
}
k++;
}
/* Uno de los dos sub-vectores ya ha sido copiado del todo, simplemente
debemos copiar todo el sub-vector que nos falte */
while (i <= med) {
aux[k] = v[i];
i++;
k++;
}
while (j <= fin) {
aux[k] = v[j];
j++;
k++;
}
/* Copiamos los elementos ordenados de aux al vector original v */
for (int n = 0; n < aux.size(); ++n) v[ini + n] = aux[n];
}
template <class T, class U>
void merge_sort(vector<T>& v, U ini, U fin) {
/* Si ini = fin el sub-vector es de un solo elemento y, por lo tanto
ya est ordenado por definicin */
if (ini < fin) {
/*Considerar que el valor de med siempre es redondeado hacia abajo.*/
int med = (ini + fin)/2;
merge_sort(v, ini, med);
merge_sort(v, med + 1, fin);
fusiona(v, ini, med, fin);
}
}
c
void mezclar(int arreglo1[], int n1, int arreglo2[], int n2, int arreglo3[])
{
int x1=0, x2=0, x3=0;
while (x1<n1 && x2<n2) {
if (arreglo1[x1]<arreglo2[x2]) {
arreglo3[x3] = arreglo1[x1];
x1++;
} else {
arreglo3[x3] = arreglo2[x2];
x2++;
}
x3++;
}
while (x1<n1) {
arreglo3[x3] = arreglo1[x1];
x1++;
x3++;
}
while (x2<n2) {
arreglo3[x3] = arreglo2[x2];
x2++;
x3++;
}
}
void mezcla(int vector[], int n)
{
int *vector1, *vector2, n1, n2,x,y;
if (n>1)
{
if (n%2 == 0)
n1=n2=(int) n / 2;
else
{
n1=(int) n / 2;
n2=n1+1;
}
vector1=(int *) malloc(sizeof(int)*n1);
vector2=(int *) malloc(sizeof(int)*n2);
for(x=0;x<n1;x++)
vector1[x]=vector[x];
for(y=0;y<n2;x++,y++)
vector2[y]=vector[x];
mezcla(vector1, n1);
mezcla(vector2, n2);
mezclar(vector1, n1, vector2, n2, vector);
free(vector1);
free(vector2);
}
}
int main(){
int i, vector[] = {2,3,5,7,2,6,1,5,8,3,2};
mezcla(vector,12);
for(i=0;i<12;i++)
printf("%i,\n", vector[i]);
return 0;
}
java
public class MergeSort{
private int A[];
public int[] OrdenaMerge(int[] L) {
int n = L.length;
if (n >
int
int
int
1){
m = (int) (Math.ceil(n/2.0));
[] L1 = new int[m];
[] L2 = new int[n-m];
}
return L;
}
public void generarNumeros(){
Random ran = new Random();
int x;
for(int i = 0; i < A.length; i++){
x = (int)(ran.nextDouble()*10000);
A[i] = x;
}
}
public void imprimir(){
for(int i = 0; i < A.length; i++){
System.out.println(A[i]);
}
}
public int[] getA(){
return A;
}
public void setA(int []A){
this.A = A;
}
}
quicksort
int colocar(int *v, int b, int t)
{
int i;
int pivote, valor_pivote;
int temp;
pivote = b;
valor_pivote = v[pivote];
for (i=b+1; i<=t; i++){
if (v[i] < valor_pivote){
pivote++;
temp=v[i];
v[i]=v[pivote];
v[pivote]=temp;
}
}
temp=v[b];
v[b]=v[pivote];
v[pivote]=temp;
return pivote;
}
<stdio.h>
<iostream.h>
<conio.h>
<stdlib.h>
<string.h>
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<
||||||||||||||||||||METROPOLI banco universal||||||||||||||||||||"<
|||||||||||||||||||||||Le da la bienvenida|||||||||||||||||||||||"<
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"<
Estimado cliente: Introduzca su numero de cedula"<<endl;
creado->cedula;
Pronto sera atendido"<<endl;
if ((*cola_n)==NULL)
{
creado->siguiente=*cola_n;
*cola_n=creado;
}
else
{
aux=*cola_n;
while(aux!=NULL)
{
if(aux->siguiente==NULL)
{
creado->siguiente=aux->siguiente;
aux->siguiente=creado;
aux=aux->siguiente;
}
aux=aux->siguiente;
}
}
}
void mostrar_cola (cola cola_n)
{
cola aux;
aux=cola_n;
if(aux==NULL)
{
cout<<"No hay clientes en cola"<<endl;
}
else
{
while(aux!=NULL)
{
cout<<"Cedula: "<<aux->cedula<<endl;
cout<<""<<endl;
aux=aux->siguiente;
cout<<"* Clientes ordenados por orden de llegada((((((SIMCOLAS))))))"<<
endl;
}
}
}
//modificado hasta ac... falta de orden por parte del creador
void insertar_vip (cola *cola_vip){
cola aux_2, creado_vip;
creado_vip=(pnodo)malloc(sizeof(tiponodo));
cout<<" |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"<<endl;//62
cout<<" ||||||||||||||||||||METROPOLI banco universal||||||||||||||||||||
"<<endl;
cout<<" |||||||||||||||||||||||Le da la bienvenida|||||||||||||||||||||||
"<<endl;
cout<<" |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"<<endl;
cout<<" Estimado cliente: Introduzca su numero de cedula"<<endl;
cin>>
creado_vip->cedula;
cout<<" Pronto sera atendido"<<endl;
if ((*cola_vip)==NULL){
creado_vip->siguiente=*cola_vip;
*cola_vip=creado_vip;
}else{
aux_2=*cola_vip;
while(aux_2!=NULL){
if(aux_2->siguiente==NULL){
creado_vip->siguiente=aux_2->siguiente;
aux_2->siguiente=creado_vip;
aux_2=aux_2->siguiente;
}
aux_2=aux_2->siguiente;
}
}
}
void menu();
void
void
void
void
void
void
Insertar();
insertar_vip();
mostrar_cola();
mostrar_colavip();
solicitar_numero();
salir();
struct perly{
char uxer[];
}data;
struct perly *p = &data;
int main(int argc, char *argv[])
{
system("color 0a");
cout<<"
<<endl;
cout<<"
<<endl;
cout<<"
<<endl;
cout<<"
<<endl;
cout<<"
<<endl;
cout<<"
<<endl;
cout<<"
dl;
cout<<"
<<endl;
cout<<"
dl;
cout<<"
<<endl;
cout<<"
<<endl;
cout<<"
<<endl;
cout<<"
dl;
cout<<"
<<endl;
cout<<"
dl;
cout<<"
<<endl;
|
*
__
*
_| |_
|________ |__
| [___] |
"
____
|....| |....|
___
|....| | ___|__
| |_| |....| || -- - |
|__[]| |
"
*
"<<en
"
* "<<en
"
| |_| |....|__|| -- - | |* * *|
"
"
| |
| _____ |
____
[_]| [___] |
* "
_|[] []|_
[_]| _____ |
"
*
[_]|
_|_
"
[_]||__
|
-+-
___| |
"
|* *|* *|* * *|
"<<en
"
"<<en
"
cout<<"
[_]| _____ |
"<<en
dl;
cout<<"
| [___] |
|_______________________| ______________ "
<<endl;
cout<<"
__|_______|_________|_______________________| _________________ "
<<endl;
cout<<" |_______________________________________________________________|"
<<endl;
cout<<" |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
<<endl;//62
cout<<" ||||||||||||||||||||METROPOLI banco universal||||||||||||||||||||"
<<endl;
cout<<" ||||||||||||Sistema Integral para el Manejo de COLAS|||||||||||||"
<<endl;
cout<<" |||||||||||||||||||||||||||||SIMCOLAS||||||||||||||||||||||||||||"
<<endl;
cout<<" |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
<<endl;
cout<<" |||||||||Creado por: Javier Rodriguez Caracas-Venezuela||||||||||"
<<endl;
cout<<" |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
<<endl;
cout<<" Login: ";
char usuario[6] = "jahvi";
cin.getline(p->uxer,6);
if (strcmp(p->uxer,usuario) == 0) {
cout<<"Bienvenid@ al sistema "<<endl; menu();
cout<<""<<endl;
}else{
cout<<"Acceso Denegado. Consulte al Admisn
istrador "<<endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
void menu() {
short a;
do {
cout<<""<<endl;
cout<< "0 - Agregar Cliente"<<endl;
cout<< "1 - Agregar Cliente V.I.P"<<endl;
cout<< "2 - Solicitar Numero"<<endl;
cout<< "3 - Mostrar Cola"<<endl;
cout<< "4 - Mostrar Cola V.I.P"<<endl;
cout<< "5 - Salir del Sistema"<<endl;
cout<<""<<endl;
fflush(stdout);
cout<<"Opcion #:";
cin>>a;
cout<<""<<endl;
if (a == 5)
exit(1);
switch(a){
case 0 :
Insertar();
break;
case 1 :
insertar_vip();
break;
case 2 :
solicitar_numero();
break;
case 3 :
mostrar_cola();
break;
case 4 :
mostrar_colavip();
break;
case 5 :
salir();
break;
default :
puts("Usted no ha selec
cionado nada, porfavor seleccione algo\n");
break;
};
} while (1);
}
void Insertar(){
insertar(&cola_n);
}
void insertar_vip(){
insertar(&cola_vip);
}
void mostrar_cola(){
mostrar_cola(cola_n);
}
void mostrar_colavip(){
mostrar_cola_vip(cola_vip);
}
void solicitar_numero(){
pop(&cola_n);
if(cola_vip!=NULL){
pop_vip(&cola_vip);
}else{
cout<<"No hay cliente V.I.P en
cola ((((((SIMCOLAS))))))"<<endl;
}
}
void salir(){
}
ordenamiento shell
public static void main(String [] args) {
//arreglo
int Entrada[] = {
321, 123, 213, 234, 1, 4, 5, 6, 21, 15
};
//llamada
shellSort(Entrada);
for (int i = 0; i < Entrada.length; i++) {
System.out.print(Entrada[i]+" ");
}
}
public static void shellSort( int vec[]) {
// saltos
for( int p = vec.length / 2; p > 0; p = p == 2 ? 1 : (int) ( p / 2.2 ) ) {
for( int i = p; i < vec.length; i++) {
int tmp = vec[i];
int j;
for(j = i; j >= p && tmp < vec[j - p]; j -= p ) {
vec[j] = vec[j - p];
}
vec[j] = tmp;
}
}
}