Match the sorting algorithm with its pseudocode:
Bubble Sort ↔️ `FOR i FROM 0 TO n-2: FOR j FROM 0 TO n-i-2: IF array[j] > array[j+1]: SWAP array[j] and array[j+1]`
Selection Sort ↔️ `FOR i FROM 0 TO n-1: minIndex = i: FOR j FROM i+1 TO n-1: IF array[j] < array[minIndex]: minIndex = j: SWAP array[i] and array[minIndex]`
Insertion Sort ↔️ `FOR i FROM 1 TO n-1: key = array[i]: j = i-1: WHILE j >= 0 AND array[j] > key: array[j+1] = array[j]: j = j-1: array[j+1] = key`
Merge Sort ↔️ `MERGE_SORT(array, start, end): IF start < end: mid = (start+end)/2: MERGE_SORT(array, start, mid): MERGE_SORT(array, mid+1, end): MERGE(array, start, mid, end)`
Quick Sort ↔️ `QUICK_SORT(array, start, end): IF start < end: pivotIndex = PARTITION(array, start, end): QUICK_SORT(array, start, pivotIndex-1): QUICK_SORT(array, pivotIndex+1, end)`