Fix quick_sort.py

pull/379/head
krahets 2 years ago
parent b89ea3eba4
commit 0b72fef381

@ -52,7 +52,7 @@ void quickSort(int nums[], int left, int right) {
/* 快速排序类(中位基准数优化) */ /* 快速排序类(中位基准数优化) */
// 选取三个元素的中位数 // 选取三个元素的中位数
int medianThree(int nums[], int left, int mid, int right) { int medianThree(int nums[], int left, int mid, int right) {
// 使用了异或操作来简化代码 // 此处使用异或运算来简化代码
// 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1 // 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1
if ((nums[left] < nums[mid]) ^ (nums[left] < nums[right])) if ((nums[left] < nums[mid]) ^ (nums[left] < nums[right]))
return left; return left;

@ -57,7 +57,7 @@ private:
/* 选取三个元素的中位数 */ /* 选取三个元素的中位数 */
static int medianThree(vector<int>& nums, int left, int mid, int right) { static int medianThree(vector<int>& nums, int left, int mid, int right) {
// 使用了异或操作来简化代码 // 此处使用异或运算来简化代码
// 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1 // 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1
if ((nums[left] < nums[mid]) ^ (nums[left] < nums[right])) if ((nums[left] < nums[mid]) ^ (nums[left] < nums[right]))
return left; return left;

@ -63,7 +63,7 @@ class QuickSortMedian
/* 选取三个元素的中位数 */ /* 选取三个元素的中位数 */
static int medianThree(int[] nums, int left, int mid, int right) static int medianThree(int[] nums, int left, int mid, int right)
{ {
// 使用了异或操作来简化代码 // 此处使用异或运算来简化代码
// 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1 // 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1
if ((nums[left] < nums[mid]) ^ (nums[left] < nums[right])) if ((nums[left] < nums[mid]) ^ (nums[left] < nums[right]))
return left; return left;

@ -49,7 +49,7 @@ class QuickSortMedian {
/* 选取三个元素的中位数 */ /* 选取三个元素的中位数 */
static int _medianThree(List<int> nums, int left, int mid, int right) { static int _medianThree(List<int> nums, int left, int mid, int right) {
// 使 // 使
// 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1 // 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1
if ((nums[left] < nums[mid]) ^ (nums[left] < nums[right])) if ((nums[left] < nums[mid]) ^ (nums[left] < nums[right]))
return left; return left;

@ -47,7 +47,7 @@ func (q *quickSort) quickSort(nums []int, left, right int) {
/* 选取三个元素的中位数 */ /* 选取三个元素的中位数 */
func (q *quickSortMedian) medianThree(nums []int, left, mid, right int) int { func (q *quickSortMedian) medianThree(nums []int, left, mid, right int) int {
// 使用了异或操作来简化代码(!= 在这里起到异或的作用) // 此处使用异或运算来简化代码(!= 在这里起到异或的作用)
// 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1 // 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1
if (nums[left] < nums[mid]) != (nums[left] < nums[right]) { if (nums[left] < nums[mid]) != (nums[left] < nums[right]) {
return left return left

@ -56,7 +56,7 @@ class QuickSortMedian {
/* 选取三个元素的中位数 */ /* 选取三个元素的中位数 */
static int medianThree(int[] nums, int left, int mid, int right) { static int medianThree(int[] nums, int left, int mid, int right) {
// 使用了异或操作来简化代码 // 此处使用异或运算来简化代码
// 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1 // 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1
if ((nums[left] < nums[mid]) ^ (nums[left] < nums[right])) if ((nums[left] < nums[mid]) ^ (nums[left] < nums[right]))
return left; return left;

@ -54,7 +54,7 @@ class QuickSortMedian {
/* 选取三个元素的中位数 */ /* 选取三个元素的中位数 */
medianThree(nums, left, mid, right) { medianThree(nums, left, mid, right) {
// 使用了异或操作来简化代码 // 此处使用异或运算来简化代码
// 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1 // 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1
if ((nums[left] < nums[mid]) ^ (nums[left] < nums[right])) return left; if ((nums[left] < nums[mid]) ^ (nums[left] < nums[right])) return left;
else if ((nums[mid] < nums[left]) ^ (nums[mid] < nums[right])) return mid; else if ((nums[mid] < nums[left]) ^ (nums[mid] < nums[right])) return mid;

@ -40,11 +40,11 @@ class QuickSort:
class QuickSortMedian: class QuickSortMedian:
""" 选取三个元素的中位数 """ """ 选取三个元素的中位数 """
def median_three(self, nums, left, mid, right): def median_three(self, nums, left, mid, right):
# 使用了异或操作来简化代码 # 此处使用异或运算来简化代码
# 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1 # 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1
if (nums[left] < nums[mid]) ^ (nums[left] < nums[right]): if (nums[left] < nums[mid]) ^ (nums[left] < nums[right]):
return left return left
elif (nums[mid] < nums[left]) ^ (nums[mid] > nums[right]): elif (nums[mid] < nums[left]) ^ (nums[mid] < nums[right]):
return mid return mid
return right return right

@ -47,7 +47,7 @@ impl QuickSort {
impl QuickSortMedian { impl QuickSortMedian {
/* 选取三个元素的中位数 */ /* 选取三个元素的中位数 */
fn median_three(nums: &mut [i32], left: usize, mid: usize, right: usize) -> usize { fn median_three(nums: &mut [i32], left: usize, mid: usize, right: usize) -> usize {
// 使用了异或操作来简化代码 // 此处使用异或运算来简化代码
// 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1 // 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1
if (nums[left] < nums[mid]) ^ (nums[left] < nums[right]) { if (nums[left] < nums[mid]) ^ (nums[left] < nums[right]) {
return left; return left;

@ -56,7 +56,7 @@ class QuickSortMedian {
/* 选取三个元素的中位数 */ /* 选取三个元素的中位数 */
medianThree(nums: number[], left: number, mid: number, right: number): number { medianThree(nums: number[], left: number, mid: number, right: number): number {
// 使用了异或操作来简化代码 // 此处使用异或运算来简化代码
// 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1 // 异或规则为 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1
if (Number(nums[left] < nums[mid]) ^ Number(nums[left] < nums[right])) { if (Number(nums[left] < nums[mid]) ^ Number(nums[left] < nums[right])) {
return left; return left;

@ -53,7 +53,7 @@ const QuickSortMedian = struct {
// //
pub fn medianThree(nums: []i32, left: usize, mid: usize, right: usize) usize { pub fn medianThree(nums: []i32, left: usize, mid: usize, right: usize) usize {
// 使 // 使
// 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1 // 0 ^ 0 = 1 ^ 1 = 0, 0 ^ 1 = 1 ^ 0 = 1
if ((nums[left] < nums[mid]) != (nums[left] < nums[right])) { if ((nums[left] < nums[mid]) != (nums[left] < nums[right])) {
return left; return left;

Loading…
Cancel
Save