十分钟记住快速排序(快速排序快速记忆方法)

Posted alice-fourier

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十分钟记住快速排序(快速排序快速记忆方法)相关的知识,希望对你有一定的参考价值。

快速排序很简单,分为三步:

1.找中轴

2.左边快排

3.右边快排

注意事项:每一次快排之前都要判断左边的下标是否小于右边的下标

代码如下:

void quick_sort(int * data,int left,int right)

{

  if(left < right)

  {

    int index = partition(data,left,right);

    quick_sort(data,left,index-1);

    quick_sort(data,index+1,right);

  }

}

找中轴也分为三步:

1.选定一个中轴(以最左边的中轴为例)

2.从右往左找,右边赋值给左边

3.从左往右找,左边赋值给右边

代码如下:

int partition(int * data,int left,int right)

{

  int piovet = data[left];

  while(left < right)

  {

    while(data[right] >= piovet && left < right) right--;

    data[left] = data[right];

    while(data[left] <= piovet && left <right) left++;

    data[right] = data[left];

  }

  data[left] = piovet;

  return left;

}

 

以上是关于十分钟记住快速排序(快速排序快速记忆方法)的主要内容,如果未能解决你的问题,请参考以下文章

三分钟快速记住冒泡排序算法!

1秒记住快速排序!

5分钟学会快速排序(分治思想)

5分钟学会快速排序(分治思想)

5分钟学会快速排序(分治思想)

三分钟彻底理解快速排序