08.递归函数

来源:互联网 发布:js获取index 编辑:程序博客网 时间:2024/05/29 16:30
1.递归终止的条件;
2.函数调用自身;

3.main函数不能调用它自己;

#include<QDebug>#define ARRAY_SIZE(arr) (sizeof(arr)/sizeof((arr)[0]))//快速排序static void func4(int *arr, int *left, int *right);int main(){    //无序表    int arr[]={49,27,65,97,76,12,38};    int *p=arr;    const int LEN=ARRAY_SIZE(arr);    int *left=arr;    int *right=arr+LEN-1;    func4(arr,left,right);    for(int i=0;i!=LEN;i++)        qDebug()<<*(p+i);    return 0;}static void func4(int *arr, int *left, int *right){    //头指针指向首地址    int *phead=left;    //尾指针指向最后的地址    int *ptail=right;    //arr指向首地址    arr=phead;    if(left>right)        return ;    //交换数    int tmp;    while(phead!=ptail)    {        while((arr==phead)&&(phead!=ptail))        {            if(*arr>*ptail)            {                tmp=*arr;                *arr=*ptail;                *ptail=tmp;                arr=ptail;                break;            }            ptail--;        }        while((arr==ptail)&&(phead!=ptail))        {            if(*arr<*phead)            {                tmp=*arr;                *arr=*phead;                *phead=tmp;                arr=phead;                break;            }            phead++;        }    }    func4(arr,left,arr-1);    func4(arr,arr+1,right);}


原创粉丝点击