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

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

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;

}

 

posted @ 2020-02-25 22:43  宝宝的你叔叔  阅读(1378)  评论(0)    收藏  举报