Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- outsideWhile:
- bgt $s0, $s1, outsideWhileEnd #if i > j escape while
- # while (arr[i] < pivot)
- # i++;
- insideWhile1:
- mul $s4, $s0, 4
- lw $t0, Array($s4) #arr[i]
- bge $t0, $s3, insideWhile1End #escape inside if arr[i] >= pivot
- addi $s0, $s0, 1 #i++
- j insideWhile1
- insideWhile1End:
- # while (arr[j] > pivot)
- # j--;
- insideWhile2:
- mul $s4, $s1, 4
- lw $t0, Array($s4) #arr[j]
- ble $t0, $s3, insideWhile2End #escape inside if arr[i] >= pivot
- subi $s1, $s1, 1 #i++
- j insideWhile2
- insideWhile2End:
- bgt $s0, $s1, whileIfFalse #if (i <= j) {
- mul $s4, $s0, 4
- lw $s2, Array($s4) #tmp = arr[i]
- mul $s4, $s1, 4
- lw $t0, Array($s4) #access arr[j]
- mul $s4, $s0, 4
- sw $t0, Array($s4) #arr[i] = arr[j]
- mul $s4, $s1, 4
- sw $s2, Array($s4) #arr[j] = tmp;
- addi $s0, $s0, 1 #i++
- subi $s1, $s1, 1 #j--
- whileIfFalse:
- j outsideWhile
- outsideWhileEnd:
- bge $a0, $s1, if1False #if left < j{
- sub $sp, $sp, 12
- sw $ra, 8($sp)
- sw $a0, 4($sp)
- sw $a1, 0($sp)
- move $a0, $a0 #left = left
- move $a1, $s1 #right = j
- jal quickSort
- lw $ra, 8($sp)
- lw $a0, 4($sp)
- lw $a1, 0($sp)
- add $sp, $sp, 12
- if1False:
- bge $s0, $a1, if2False
- sub $sp, $sp, 12
- sw $ra, 8($sp)
- sw $a0, 4($sp)
- sw $a1, 0($sp)
- move $a0, $s0 #left = i
- move $a1, $a1 #right = right
- jal quickSort
- lw $ra, 8($sp)
- lw $a0, 4($sp)
- lw $a1, 0($sp)
- add $sp, $sp, 12
- if2False:
- jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement