快速排序原創精講

2021-10-18 13:30:30 字數 829 閱讀 6947

1、需要先學會操控指標、陣列玩得轉

2、需要先理解區域性變數和系統變數的區別

3、還需要學會使用遞迴。

1、 以第乙個數為分界值,小換到左邊,大的換到右邊

2、運用分治思想 , 對分界值左右兩邊的小陣列依次做類似的事

第一步是乙個不帶遞迴的版本,只有while和if ,請大家務必先理解這個再去看第二步。

我有幾點提示 :

1、diretion  是我定義的乙個方向

2、外層while 執行乙個迴圈,表示,交換了一次

3、 內層while 執行乙個迴圈,表示,指標逼近一次

4 、 每次交換會換一下方向

5、倘若修改一下true /false , 那麼就是以最後乙個數當分界值了,對整體的排序不影響,其實整個排序都是亂的取那個值都是一樣的。

package com.tools.parent.utils;

public class fastsort ;

fastsort(a ,0,a.length-1);

print(a);

}private static void fastsort(int a, int star, int end) ;

fastsort(a ,0,a.length-1);

print(a);

}private static void fastsort(int a, int star, int end)

int s = star;

int e = end;

boolean diretion = true; // false 為左側, true 為右側

while (star看懂了,請賞乙個贊

原創 快速排序

在程式中,寫了幾個輔助函式,乙個是用來初始化帶排序陣列的,乙個是用來列印陣列的。好了,廢話不多說了,見 首先定義乙個標頭檔案。1 2 include3 include4 using namespace std 5 6 生成隨機數陣列7 void createarray int data,int le...

新手講排序 詳細講解快速排序

quick sort int a,int start,int end int i start j end pivot 一.先選擇乙個基準pivot,3種選擇方式 1.固定位置,開頭或結尾或中間 2.隨機位置,採用隨機數產生start和end之間的數 3.平衡位置,即從開頭結尾中間三個數中選擇他們的中...

排序演算法總結(精講 C語言介紹)

氣泡排序原理 include void bubble sort int a,int n int main bubble sort a,10 for int i 0 i 10 i 插入排序原理 include void insert sort int a,int n a j 1 x int main ...