快速排序

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

思想: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);

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容