Java快速排序算法

原创
2016/06/16 14:12
阅读数 127
    //快速排序
    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);
        }
    }

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
1 收藏
0
分享
返回顶部
顶部