Update index.md (#32810)
This commit is contained in:
@ -15,64 +15,64 @@ The steps involved in Quick Sort are:
|
|||||||
### Implementation in JavaScript:
|
### Implementation in JavaScript:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
const arr = [6, 2, 5, 3, 8, 7, 1, 4]
|
const arr = [6, 2, 5, 3, 8, 7, 1, 4];
|
||||||
|
|
||||||
const quickSort = (arr, start, end) => {
|
const quickSort = (arr, start, end) => {
|
||||||
|
|
||||||
if(start < end) {
|
if(start < end) {
|
||||||
|
|
||||||
// You can learn about how the pivot value is derived in the comments below
|
// You can learn about how the pivot value is derived in the comments below
|
||||||
let pivot = partition(arr, start, end)
|
let pivot = partition(arr, start, end);
|
||||||
|
|
||||||
// Make sure to read the below comments to understand why pivot - 1 and pivot + 1 are used
|
// Make sure to read the below comments to understand why pivot - 1 and pivot + 1 are used
|
||||||
// These are the recursive calls to quickSort
|
// These are the recursive calls to quickSort
|
||||||
quickSort(arr, start, pivot - 1)
|
quickSort(arr, start, pivot - 1);
|
||||||
quickSort(arr, pivot + 1, end)
|
quickSort(arr, pivot + 1, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const partition = (arr, start, end) => {
|
const partition = (arr, start, end) => {
|
||||||
let pivot = end
|
let pivot = end;
|
||||||
// Set i to start - 1 so that it can access the first index in the event that the value at arr[0] is greater than arr[pivot]
|
// Set i to start - 1 so that it can access the first index in the event that the value at arr[0] is greater than arr[pivot]
|
||||||
// Succeeding comments will expound upon the above comment
|
// Succeeding comments will expound upon the above comment
|
||||||
let i = start - 1
|
let i = start - 1,
|
||||||
let j = start
|
j = start;
|
||||||
|
|
||||||
// Increment j up to the index preceding the pivot
|
// Increment j up to the index preceding the pivot
|
||||||
while (j < pivot) {
|
while (j < pivot) {
|
||||||
|
|
||||||
// If the value is greater than the pivot increment j
|
// If the value is greater than the pivot increment j
|
||||||
if (arr[j] > arr[pivot]) {
|
if (arr[j] > arr[pivot]) {
|
||||||
j++
|
j++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// When the value at arr[j] is less than the pivot:
|
// When the value at arr[j] is less than the pivot:
|
||||||
// increment i (arr[i] will be a value greater than arr[pivot]) and swap the value at arr[i] and arr[j]
|
// increment i (arr[i] will be a value greater than arr[pivot]) and swap the value at arr[i] and arr[j]
|
||||||
else {
|
else {
|
||||||
i++
|
i++;
|
||||||
swap(arr, j, i)
|
swap(arr, j, i);
|
||||||
j++
|
j++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//The value at arr[i + 1] will be greater than the value of arr[pivot]
|
//The value at arr[i + 1] will be greater than the value of arr[pivot]
|
||||||
swap(arr, i + 1, pivot)
|
swap(arr, i + 1, pivot);
|
||||||
|
|
||||||
//You return i + 1, as the values to the left of it are less than arr[i+1], and values to the right are greater than arr[i + 1]
|
//You return i + 1, as the values to the left of it are less than arr[i+1], and values to the right are greater than arr[i + 1]
|
||||||
// As such, when the recursive quicksorts are called, the new sub arrays will not include this the previously used pivot value
|
// As such, when the recursive quicksorts are called, the new sub arrays will not include this the previously used pivot value
|
||||||
return i + 1
|
return i + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const swap = (arr, firstIndex, secondIndex) => {
|
const swap = (arr, firstIndex, secondIndex) => {
|
||||||
let temp = arr[firstIndex]
|
let temp = arr[firstIndex];
|
||||||
arr[firstIndex] = arr[secondIndex]
|
arr[firstIndex] = arr[secondIndex];
|
||||||
arr[secondIndex] = temp
|
arr[secondIndex] = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
quickSort(arr, 0, arr.length - 1)
|
quickSort(arr, 0, arr.length - 1);
|
||||||
console.log(arr)
|
console.log(arr);
|
||||||
```
|
```
|
||||||
|
|
||||||
### Implementation in C
|
### Implementation in C
|
||||||
|
Reference in New Issue
Block a user