简述:快速排序是冒泡排序的改进版,也是好的一种内排序(内排序是指将待排序数列完全放入内存中进行排列的过程,适合不太大的元素数列)。
思想: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);
}
网友评论