Example #1
0
int popfromheap(int *heap,int *increment)
{
    int returnvalue;
    int i=0;
    returnvalue=heap[0];
    heap[0]=0;
    while(i<*increment)
    {
        if(*increment>i*2+1&&*increment<=i*2+2)
        {
            swapping(&heap[i],&heap[(i*2)+1]);
            break;
        }
        if(*increment>i*2+2)
        {

            if(heap[(i*2)+1]>heap[(i*2)+2])
            {
                swapping(&heap[i],&heap[(i*2)+1]);
                i=(i*2)+1;
            }
            else
            {
                swapping(&heap[i],&heap[(i*2)+2]);
                i=(i*2)+2;
            }
        }

        else
        {
            break;
        }
    }
    return returnvalue;
}
void bubbleSort(struct node *start)
{
    int swapped, i;
    struct node *ptr1= (struct node *) malloc( sizeof(struct node) );
    struct node *lptr = NULL;

    if (ptr1 == NULL) return;
    do
    {
        swapped = 0;
        ptr1 = start;
 
        while (ptr1->next != lptr)
        {
            if (ptr1->data > ptr1->next->data)
            { 
                swapping(ptr1, ptr1->next);
                swapped = 1;
            }
            ptr1 = ptr1->next;
        }
        lptr = ptr1;
    }
    while (swapped);
}
Example #3
0
int main(void) {
	int a,b;

	a=5;
	b=10;
	printf("input: %d %d\n", a, b);
	swapping(&a,&b);
	printf("output: %d %d\n", a, b);
	return 0;
}
Example #4
0
void bubblesort(int *sortingarray,int *elementnumber)
{ int b=500;
 int i=0;int c;
  printf("Bubble or shaker:0 or 1\n");
 scanf("%d",&c);
 while(b!=0){

     b=0;
    while(i<*elementnumber)
    {
      if(sortingarray[i]>sortingarray[i+1]){swapping(&sortingarray[i],&sortingarray[i+1]);b++;}
      i++;
    }
    if(c==0){i=0;}
    if(c==1){do{
     if(sortingarray[i]<sortingarray[i-1]){swapping(&sortingarray[i],&sortingarray[i-1]);b++;}
      i--;}
      while(i>0);}
    }


}
int main()
{
	node *head;
	head = (node *)malloc(sizeof(node));
	create(head);
	printf("\n");
	print(head);
	printf("\n");
	swapping(&head);
	printf("\n");
	print(head);
	printf("\n");
	return 0;
}
Example #6
0
void selectionsort(int *sortingarray,int *elementnumber)
{
    int i,j;i=j=0;int min;
    while(j<=*elementnumber)
    {
      i=j;min=i;
      while(i<=*elementnumber)
      {
        if(sortingarray[i]<sortingarray[j]&&sortingarray[i]<sortingarray[min]){min=i;}
        i++;
      }
      swapping(&sortingarray[min],&sortingarray[j]);
      j++;

    }
}
Example #7
0
void insertionsort(int *sortingarray,int *elementnumber)
{
    int i,j;j=1;
    while(j<=*elementnumber)
    {
      i=j-1;
      while(i>=0)
      {
          if(sortingarray[i]>sortingarray[i+1])
          {
              swapping(&sortingarray[i],&sortingarray[i+1]);
              i--;
          }
          else{break;}

      }
      j++;
    }
}
Example #8
0
int agregar_en_frame_libre(int page_to_add, t_proceso * proceso, int read_or_write) {

	t_mem_frame * frame_libre = NULL;
	int nro_frame = 0;

	for (nro_frame = 0; nro_frame < umc_config->cant_frames; nro_frame++) {
		frame_libre = list_get(frames_memoria, nro_frame);

		if (frame_libre->libre)
			break;
	}

	if (nro_frame >= umc_config->cant_frames)
		return -1;

	//SWAPPING
	swapping(page_to_add, -1, proceso->pid, 0, nro_frame);
	//--------

	t_tabla_pagina * page = buscar_pagina(page_to_add, proceso->tabla_paginas);
	page->accessedbit = 1;
	page->frame = nro_frame;
	page->presentbit = 1;
	page->dirtybit = read_or_write;

	frame_libre->libre = false;
	frame_libre->pagina = page_to_add;
	frame_libre->pid = proceso->pid;


	if (tlb_on) {
		t_tlb * reemplazo_tlb = malloc(sizeof(t_tlb));
		reemplazo_tlb->referencebit = 0;
		reemplazo_tlb->frame = nro_frame;
		reemplazo_tlb->pagina = page_to_add;
		reemplazo_tlb->pid = proceso->pid;

		run_LRU(reemplazo_tlb);
	}

	return nro_frame;
}
Example #9
0
int insertintoheap(int *heap,int *increment,int value)
{
    int check;
    int i;
    check=1;
    i=*increment;
    heap[i]=value;
    while(i>0&&check==1)
    {
        if(heap[i]>heap[(i-1)/2])
        {
            swapping(&heap[i],&heap[(i-1)/2]);
        }
        else
        {
            check=0;
        }
        i=(i-1)/2;
    }
    *increment=*increment+1;
}