Skip to content

BrunoMRosaboni/TrabalhoOrg

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

;void Quicksort(int[] A,int low,int high){ ; int pivot; ; if(low < high){
; pivot=partition(A,low,high); ; } ; Quicksort(A,low,pivot-1); // quicksort para metade esquerda ; Quicksort(A,pivot+1,high); // quicksort p/ metade direita ;} ;int partition(int[] A,int low,int high){ ; pivot=A[low]; ; int leftwall = pivot; ; for(int i = low+1 ; i < high ; i++){ ; if(A[i] < pivot){ ; leftwall += 1; ; swap(A[i],A[leftwall]); ; } ; } ; swap(A[low],A[leftwall]]); ; ; return leftwall; ;} ;void swap(int a,int b){ ; int aux=a; ; a=b; ; b=aux; ;} A: var #20 ;declaracao do vetor A,assumindo q ele tenha 20 posicoes

load r1,A ;endereco primeiro elemento de A

loadn r2,#0 ;low

loadn r3,#10 ;high

loadi r4,r1; ;pivo começa sendo A[0]

Quicksort: cmp r2,r3 ; if( low < high ) jle partition ; vai p/ partition
dec r4 ; pivot -= 1
call Quicksort ; Quicksort(A,low,pivot-1) inc r4 ; pivot += 1 inc r4 ; pivot += 1 call Quicksort ; Quicksort(A,pivot+1,high)
;1681153922

partition:

 ;push r4           ; joga conteudo de r4 na pilha p/ q não seja perdido
 ;load r4,r1        ; determina qual é o pivo ,retornando o conteudo de A[low]
 ;push r5
 mov r5,r4          ; r5 eh leftwall
 mov r6,r2          ; r6 eh usado como i
 inc r6             ; i=low+1
                  
 call swap_for_loop ; vai para swap(A[low],A[leftwall]) 
 jmp Quicksort      ; retorna p/ Quicksort

for_loop:

   cmp r3,r6         ; compara i com high
 jeg partition     ; se i >= high,volta p/ partition 
 load r7,A[i]      ; carrega A[i] para r6
 cmp r7,r4         ; compara A[i] com pivo
 jle for_loop      ; se(A[i]<pivo),volta p/ loop
 inc r5            ; leftwall+=1  
   call swap          
 jmp for_loop   

swap_for_loop: ;swap(A[low],A[leftwall]) push r1

swap: ;swap(A[i],A[leftwall]); mov r3,r1 mov r1,r2 mov r2,r3

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published