码迷,mamicode.com
首页 > 编程语言 > 详细

利用选择排序排序数组,用二分查找法查找

时间:2015-06-08 19:10:59      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

#include <stdio.h>
#include <iostream>
using namespace std;

int main()
{
    int a[] ={1,8,45,12,75,466,25,65,14,56,53};
    int t;
    int length;
    length =sizeof(a)/sizeof(a[0]);
    for(int i=0;i<length;i++)
    {
        for(int j=i+1;j<length;j++)
        {
            if(a[i]>a[j])
            {
                t=a[j];
                a[j]=a[i];
                a[i]=t;
            }
        }
    }

    for(int i=0;i<length;i++)
    {
        printf("%d\n",a[i]);
    }
    int low=0,hight =length-1;
    
    int aim ,index,flag=0;
    scanf("%d",&aim);
    while(low<=hight)
    {
        int middle =(low+hight)/2;
        if(a[middle]==aim) 
        {
            flag =1;
            break;
        }
         if(a[middle]<aim)
        {
            low=middle+1;
        }
        else hight=middle-1;
    }

    printf("%d",flag);
    system("pause");

}
   int length;
    length =sizeof(a)/sizeof(a[0]);
为获取数组长度,其中 sizeof(a[0]) 要比 sizeof(int) 更好 因为当数组类型换了时候也没事

如果换成冒泡排序 第二个循环就要换了 j从0开始 然后 j<length-i-1

二分查找法 注意 while(low<=hight) "="

其次 flag =1; break; 如果不跳出的话 继续后面的判断 就不对了


利用选择排序排序数组,用二分查找法查找

标签:

原文地址:http://www.cnblogs.com/zhuyaguang/p/4561406.html

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