Java快速排序算法

//快速排序
    public static void fast_sort(int a[], int startIndex, int endIndex)
    {
        int midOne = a[startIndex];//選第一個做爲參考點
        int i = startIndex, j = endIndex;
        if(i < j)//這個判斷是遞歸結束的依據,不加的話會致使堆棧溢出
        {
            while(i < j)
            {
                for(; i < j; j--){
                    if(a[j] < midOne)//小於參考點的數移到左邊
                    {
                        a[i++] = a[j];
                        break;
                    }
                }
                for(; i < j; i++){
                    if(a[i] > midOne)//大於參考點的數移到右邊
                    {
                        a[j--] = a[i];
                        break;
                    }
                }
            }
        
            a[i] = midOne;//參考點歸位

            //把參考點左右的部分分別進行快排
            fast_sort(a, startIndex, i - 1);
            fast_sort(a, i + 1, endIndex);
        }
    }