快速排序 C 實現 遞迴呼叫

2021-10-08 06:18:21 字數 778 閱讀 6962

第一種寫法 遞迴實現 快排中心思想 分治法 乙個參考點 可以最右最左中間都可以 看你  下面是最右的寫法

取right當基準點point 以及記下來索引 p_index   2個游標left right  來找比基準值 大或者小的交換 如果相遇交換 left和p_index

class program

;sort(arr);

foreach (var item in arr)

}static void sort(int arr)

static void quicksort(int arr, int left, int right)

static int partition(int arr, int left, int right)

while (arr[right] >= point && left < right)

if (left != right)

}swap(arr, left, p);

return left;//left此時和right相遇交換了,值是point的值,位置索引就是point應該在的相對位置

}/// /// 陣列中2個元素交換值

///

/// 目標陣列

/// 索引i

/// 索引j

C遞迴實現快速排序 主函式呼叫

視覺化 先上 coding utf 8 include define size 10 返回表的軸心點 改點的左邊值都小於它,右邊值都大於它 下標 注意 快速排序的思路是 對乙個子表取第乙個作為初始支點,經過partition函式的排序後返回新的支點下標,排序後該子表的支點放在中間的合適位置 即支點左...

快速排序 遞迴實現

快速排序演算法 用到了 分治法 遞迴演算法 package com.xiahui public class quicksort quicksort quicksort new quicksort quicksort.quicksort a,0,6 for int i 0 i a.length i p...

快速排序 遞迴實現

快速排序演算法 用到了 分治法 遞迴演算法 package com.xiahui public class quicksort quicksort quicksort new quicksort quicksort.quicksort a,0,6 for int i 0 i a.length i p...