⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 quick_sort.cpp

📁 qiuck_sort是优于其他排序操作的一种排序方法
💻 CPP
字号:
//quick_sort by suqiang @ neuq & jlu 更详细的内容请访问:http://blog.csdn.net/china8848

#define MAX_SIZE 100
#include <iostream>
using namespace std;

//交换指针p1,p2指向的值
void exchange(int *p1,int *p2)
{
    int temp=*p1;
    *p1=*p2;
    *p2=temp;
}
//pa为指向A[]的数组,p,r为下标,对A[p..r]进行就地重排,以A[r]为主元
//划分为小于主元和大于主元的两部分,返回主元的下标q
//例如:A[1..6]={18,8,16,6,9,10}结果:A[1..6]={8,6,9,10,18,16} q=4
//(元素顺序可能与结果不一致,但小于10的元素在10前面,大于10的元素在10后面)
int partition(int *pa,int p,int r)
{
    int x=*(pa+r); //主元
    int i=p-1,j;  //i表示小于主元的最后一个元素
    for(j=p;j<r;j++)
    {
        if(*(pa+j)<x)
        {
            i++;
            exchange((pa+i),(pa+j));
        }
    }
    exchange((pa+r),(pa+i+1));
    return i+1;
}
//快速排序
void quick_sort(int *pa,int p,int r)
{
    if(p<r)
    {
        int q=partition(pa,p,r);
        quick_sort(pa,p,q-1);
        quick_sort(pa,q+1,r);
    }
}

int main()
{
    int A[MAX_SIZE],i;
    for(i=1;i<=10;i++)
        A[i]=11-i;
    int *pa=A;
    //快速排序
    quick_sort(pa,1,10);
    for(i=1;i<=10;i++)
        cout<<A[i]<<endl;
    return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -