Ejemplo n.º 1
0
/* Funcao que ordena nomes usando QUICKSORT */
void ordenaNome(contato agenda[], int p, int r){
   int j;
   if(p < r){
      j = separa(agenda, p, r);
      ordenaNome(agenda, p, j - 1);
      ordenaNome(agenda, j + 1, r);
   }
}
Ejemplo n.º 2
0
void quicksort (int v[], int p, int r) {
  int j;
  if (p < r) {
    j = separa (v, p, r); 
    quicksort (v, p, j-1); 
    quicksort (v, j+1, r);
  }
}
Ejemplo n.º 3
0
/*  Returns in *v a sorted permutation of its elements. */
void quicksort(int v[], int p, int r)
{
	int j;
	while (p < r) {
		j = separa(v, p, r);
		quicksort(v, p, j - 1);
		p = j + 1;
	}
}
Ejemplo n.º 4
0
void quickSort (int* vetor, int r, int q) {
  int p;

  if (r < q) {
    p = separa (vetor, r, q);
    quickSort (vetor, r, p-1);
    quickSort (vetor, p+1, q);
  }
}
Ejemplo n.º 5
0
void quicksort(int p, int r, int vetor[2][MAX]) {
  int q;

  if (p < r) {
    q = separa(p, r, vetor );
    quicksort(p, q, vetor );
    quicksort(q+1, r, vetor );
  }

}
Ejemplo n.º 6
0
void quicksort (int v[], int p, int r)
{
    int j;                         // 1
    if (p < r)                     // 2
    {
        j = separa (v, p, r);       // 3
        quicksort (v, p, j-1);      // 4
        quicksort (v, j+1, r);      // 5
    }
}
Ejemplo n.º 7
0
void
quickSort( int p, int r,int *trocas)
{
    int j;
    if (p < r) {
        j = separa(p, r,trocas);
        quickSort(p, j-1,trocas);
        quickSort(j+1, r,trocas);
    }
}
Ejemplo n.º 8
0
main (){
  pthread_t history;
  char buffer[BUFFER_SIZE];
  strcpy(prompt,"#");
  prepararSenales();

  while (1){
    argumentos[0] = "\n"; //inicializar el arreglo para que no haya errores de punteros
    argumentos[1] = "\n";
    printf("[%s-%s] %s ", getlogin(), miPwd(), prompt);
    fgets(buffer, BUFFER_SIZE, stdin);	
    separa(buffer,argumentos);  

    pthread_create(&history, NULL, (void *)setHistorial, buffer);
    if (!strcmp(argumentos[0],"salir")){
      printf("Saliendo de shell...\n");	
      exit(0);
    }
    else if (!strcmp(argumentos[0], "historial")){    
      mostrarHistorial();
    }      
    else if(!strcmp(argumentos[0],"cd")){
        chdir(argumentos[1]);
	if(argumentos[1]==0) {
	char *str = getenv( "HOME" );
	if ( chdir ( str ) < 0 ) {
		fprintf( stderr , "cd: ERROR\n");
	   }
	}
    }    
    else if (!strcmp(argumentos[0], "mipid")){
      printf("Mi id de Proceso es %d\n",(int)getpid()); 
    }
    else {
      if(fork() == 0){
	redireccion();	
	if(execvp(argumentos[0], argumentos)<0 )
	  {
	    if (argumentos[0] == "\n"){}
	    else{
	      printf ("ese comando no existe\n");
	    }
	    exit(0);//matar al hijo
	  }	
      }
      /* el padre espera al hijo */
      pthread_join(history, NULL);
      wait(NULL); 	
    }
  }
}
Ejemplo n.º 9
0
int main ()
{
	Lista *a, *b;
	int chave;
	a=lst_cria();
	b=lst_cria();
	puts("Gerando Lista Automaticamente!");
	Sleep(1500);
	system("cls");
	/*Inserir Numeros na Lista*/
	a=lst_insere(a, 100);a=lst_insere(a, 200);a=lst_insere(a, 300);
	a=lst_insere(a, 400);a=lst_insere(a, 500);a=lst_insere(a, 600);
	a=lst_insere(a, 700);
	printf("\n\nLista: ");
	lst_imprime(a);
	printf("Separar em qual Algarismo: ");scanf("%d", &chave);
	b=separa(a,chave);
	printf("\n\nLista 2: ");
	lst_imprime(b);	
system ("pause");
return 0;	
}
Ejemplo n.º 10
0
/*
----------------------------------------------------------------------
Funcao quickSort(Lista *l)
  Ordena a lista em ordem decrescente de nota utilizando o 
  algoritmo Quicksort adaptado para listas encadeadas.
*/
void quickSort(Lista *lista)
{
    /** VARIÁVEIS *****************************************************/
        Lista *esquerda; /* Lista para os elementos maiores que 'i'  */
        Lista *direita;  /* Lista para os elementos menores que 'i'  */
        Filme *ini;      /* Apontador para primeiro filme da lista   */
        Filme *fim;      /* Apontador para o último filme da lista   */
        Filme *i;        /* Filme com nota pivô para as sublistas
                            devolvido pelo algoritmo de separação    */
        
        ini = lista->ini; fim = lista->fim;
    
    /** BASE DA RECURSÃO **********************************************/
        if(ini == NULL || fim == NULL) return; /* Lista vazia        */
        if(ini == fim) return;                 /* Apenas 1 elemento  */
        if(fim->prox == ini) return;           /* Começo precede fim */
        
    /** SEPARAÇÃO *****************************************************/
        i = separa(lista);
        
    /** PASSO DA RECURSÃO *********************************************/
        esquerda = (Lista *) mallocSafe(sizeof(*esquerda));
        direita = (Lista *) mallocSafe(sizeof(*direita));
        
        esquerda->ini = lista->ini; esquerda->fim = i->ant;
        direita->ini = i->prox; direita->fim = lista->fim;
        
        quickSort(esquerda);  /* Filmes com nota maior que i->nota */
        quickSort(direita);   /* Filmes com nota menor que i->nora */ 
        
        /* Atualiza início e fim */
        lista->ini = esquerda->ini; lista->fim = direita->fim;
        
    /** LIBERAÇÃO DE MEMÓRIA ******************************************/
        free(esquerda); esquerda = NULL;
        free(direita); direita = NULL;
}
Ejemplo n.º 11
0
int main(){
    Lista *l;
    l=lst_cria();
    l=lst_insere(l,10);
    l=lst_insere(l,20);
    l=lst_insere(l,30);
    l=lst_insere(l,40);
    l=lst_insere(l,50);
    l=lst_insere(l,100);
    l=lst_insere(l,200);
    l=lst_insere(l,300);
    l=lst_insere(l,400);
    l=lst_insere(l,500);
    lst_imprime(l);
    puts("");
    int elem;
    printf("Escolha o elemento no qual ocorrera a separacao da lista: ");
    scanf("%d",&elem);
    int busca=lst_buscar(l,elem);
    if(busca){
        Lista *l2;
        l2=lst_cria();
        l2=separa(l,elem);
        printf("Lista 1: ");
        lst_imprime(l);
        puts("");
        printf("Lista 2: ");
        lst_imprime(l2);
        puts("");
        lst_libera(l2);
    }else{
        puts("Elemento nao encontrado");
    }
    lst_libera(l);
    return 0;
}