剑指offer面八_旋转数组的最小数字

来源:互联网 发布:sql的查询语句怎么写 编辑:程序博客网 时间:2024/06/09 15:59
/*把数组最开始的若干个元素搬到数组的末尾,称之为数组的旋转。输入一个递增数组的一个旋转,输出旋转数组的
 最小元素。
 e.g. {3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1*/

#include<iostream>
#include<cstring>
#include<stdio.h>
#include<stdlib.h>


using namespace std;

int comp(const void* a,const void* b)
{
        return *(int*)a-*(int*)b;
}
int main()
{
    int s[100];
    int ndata,num,i;
   //方法一:读入带空格整数
/*  cin>>ndata;
    cout<<ndata<<endl;
    for(i=0;i<ndata*2-1;i++)
    {
        cin>>num;
        char c=getchar();
        s[i++]=num;
    }
    s[i]='\0';
    for(i=0;i<ndata*2-1;i=i+2)
     {
         cout<<s[i]<<"  ";
     }
*/
    //方法二:读入未知个带空格的整数
    num=0;
    for(i=0;;i++)
    {
        cin>>s[i];
        num++;
        if(getchar()=='\n')
            break;
    }
 /*  for(i=0;i<num;i++)
        cout<<s[i]<<" ";
 */

    cout<<"\n\n排序后:";
    qsort(s,num,sizeof(int),comp);
    for(i=0;i<num;i++)
        cout<<s[i]<<" ";
    cout<<"\n\n最小元素为:"<<s[0]<<endl;
    return 0;
}

0 0