数据结构期中复习---第一章绪论---程序片段

   日期:2020-11-15     浏览:152    评论:0    
核心提示:第一章1.循环左移void reverseArr(int A[],int start,int rear){ for(int i=start,j=reaer;i<=(start+rear)/2;i++,j++) { int temp=A[i]; A[i]=A[j]; A[j]=temp; }}2.奇偶数排列思路:分别设置工作指针i和j,i指向数组的低地址端,j指向数组的高地址端,一旦发现左边是偶数,右边是奇数,则发生交换

第一章 绪论

1.循环左移

void reverseArr(int A[],int start,int rear)
{ 
    for(int i=start,j=rear;i<=(start+rear)/2;i++,j++)
    { 
        int temp=A[i];
        A[i]=A[j];
        A[j]=temp;
    }
}

2.奇偶数排列

思路:分别设置工作指针i和j,i指向数组的低地址端,j指向数组的高地址端,一旦发现左边是偶数,右边是奇数,则发生交换。

void split(int A[],int n)
{ 
    forint i=0,j=n-1;i<j;i++,j--)
    {     //前奇后偶,正常i++,j--
        if(A[i]%2==0 && A[j]%2==1)   //前偶后奇,交换位置
        { 
            int temp=A[i];
            A[i]=A[j];
            A[j]=temp;
        }
        else if(A[i]%2==0 && A[j]%2==0) i--;    //前偶后偶,i继续停留在原来位置,不能让i后移
        else if(A[i]%2==1 && A[j]%2==1) j++;    //前奇后奇,j继续停留在原来位置,不能让j前移
    }
}

3.回文字符串

#include <iostream>
using namespace std;
bool judge(string str)
{ 
    int n=str.length();
    for(int i=0;i<n/2;i++)
    { 
        if(str[i]==str[n-1]) n--;    //从前往后,从后往前,一起遍历
        else return false;
    }
    retrun true;
}
int main()
{ 
    string s;
    getline(cin,s);
    bool res=judge(s);
    if(res) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
    return 0;
}

4.求最大值和次大值

#include <iostram>
using namespace std;
void getmax(int A[],int n,int &fmax,int &smax)
{ 
    fmax=0;
    smax=0;
    for(int i=0;i<n;i++)
    { 
        if(fmax<A[i])
        { 
            smax=fmax;
            fmax=A[i];
        }
        else if(smax<A[i])    //else if语句里,fmax>=A[i]
        { 
            smax=A[i];
        }
    }

}
int main()
{ 
    int n,maxV,nMax;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++)
    { 
        cin>>a[i];
    }
    getMax(a,n,maxV,nMax);
    cout<<maxV<<" "<<nMax<<endl;
    return 0;
}
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服