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); }
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; }
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; }
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++; } }
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++; } }
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; }
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; }