标签:
#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