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 ...