美文网首页
快速排序

快速排序

作者: flame_ash | 来源:发表于2017-08-08 00:16 被阅读0次

    简述:快速排序是冒泡排序的改进版,也是好的一种内排序(内排序是指将待排序数列完全放入内存中进行排列的过程,适合不太大的元素数列)。

    思想:1.在待排序的元素数列中随便选择一个元素作为基准(通常选取第一个作为基数),通常称为基数

               2.将待排序数列进行分区,分区规则是:比基数大的元素放右边;比基数小的元素放左边

              3.将已分好的区块重复以上规则,直到所有的元素都有序为止

    如下图所示


    实现编码如下:


    public void quickSort(){

         if(start > end)return;

         intleft = start;

         intright = end;

         intbaseNum = array[start];

         while(left != right){   

                  while(left < right && baseNum <= array[right]){

                    right--;

           }

    while(left < right && baseNum >= array[left]){

    left++;

    }

    inttemp = array[left];

    array[left] = array[right];

    array[right] = temp;

    }

    inttemp = array[left];

    array[left] = baseNum;

    array[start] = temp;

    quickSort(array,start,left -1);

    quickSort(array,right+1,end);

    }

    相关文章

      网友评论

          本文标题:快速排序

          本文链接:https://www.haomeiwen.com/subject/knrzlxtx.html