码迷,mamicode.com
首页 > 其他好文 > 详细

2.1.3-2.14

时间:2015-11-18 08:10:30      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

2.1.3 Search in Rotated Sorted Array

    其中无重复部分

#include <stdio.h>
void main()
{
    int a[7]={4,5,6,7,0,1,2};
    int result = SRSA(a,7,6);
    printf("%d",result);
}
int SRSA(int A[],int length,int target)
{
    int first=0;
    int last=length;
    int mid=0;
    while(first<last)
    {
        mid=(first+last)/2;
        if(A[mid]==target)
            return mid;
        if(A[first]<=A[mid])
        {
            if(A[first]<=target && target<A[mid])
            {
                last=mid;
            }else
            {
                first=mid+1;
            }
        }else
        {
            if(A[mid]<target && target<=A[last-1])
            {
                first=mid+1;
            }else
            {
                last=mid;
            }
        }
    }
    return -1;
}

2.1.4 Search in Rotated Sorted Array II

    其中有重复部分

#include <stdio.h>
 
void main()
{
    int a[5]={1,3,1,1,1};
    int result = SRSA(a,5,1);
    printf("%d",result);
}
 
int SRSA(int a[],int length,int target)
{
    int first=0;
    int last=length;
    int mid=0;
    while(first!=last)
    {
        mid=(first+last)/2;
        if(a[mid]==target)
        {
            return mid;
        }
        if(a[first]==a[mid])
        {
            first++;
            continue;
        }
        if(a[first]<a[mid])
        {
            if(a[first]<=target&&target<a[mid])
            {
                last=mid;
            }else
            {
                first=mid+1;
            }
        }else
        {
            if(a[mid]<target&&target<=a[last-1])
            {
                first=mid+1;
            }else
            {
                last=mid;
            }
        }
    }
    return -1;
}

  

2.1.3-2.14

标签:

原文地址:http://www.cnblogs.com/zhenzhen-xuanxuan/p/4971517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!