Fix the median_three mehod for quick sort (#1134)

* Add the section of terminologies.

* fix format

* Fix median_three function for quick sort

* Delete docs/chapter_appendix/terminologies.md

* Update quick_sort.ts

* Update quick_sort.rs

* Update quick_sort.js
This commit is contained in:
Yudong Jin
2024-03-15 01:06:59 +08:00
committed by GitHub
parent 644eaf99ff
commit 9769e14017
12 changed files with 83 additions and 93 deletions

View File

@ -47,13 +47,16 @@ func quickSort(nums: inout [Int], left: Int, right: Int) {
/* */
/* */
func medianThree(nums: [Int], left: Int, mid: Int, right: Int) -> Int {
if (nums[left] < nums[mid]) != (nums[left] < nums[right]) {
return left
} else if (nums[mid] < nums[left]) != (nums[mid] < nums[right]) {
return mid
} else {
return right
let l = nums[left]
let m = nums[mid]
let r = nums[right]
if (l <= m && m <= r) || (r <= m && m <= l) {
return mid; // m l r
}
if (m <= l && l <= r) || (r <= l && l <= m) {
return left; // l m r
}
return right;
}
/* */