#include <stdio.h>//快速查找最大值和最小值
void main(){
int a[5]={6,2,4,7,3};
int min = 0;
for(int i=1;i<5;i++)
{
if(a[i]<a[min])
{
min=i ;
}
}
printf("%d",a[min]);
#include <stdio.h>//随意取5个数,给数组赋值,用两个for循环进行冒泡排序,满足2分查找的前提,数组必须是从小到大排列
#include <stdlib.h>
#include <time.h>
int Sreach();
void main(){
int a[5]={0,0,0,0,0};
int b = 0;
srand(time(0));
for(int n = 0;n<5;n++){
b = rand()%100+1;
a[n]=b;
}
for(int m=0;m<(sizeof(a)/sizeof(int));m++){
for(int j=1;j<(sizeof(a)/sizeof(int));j++){
if(a[j]<a[j-1]){ 冒泡排序从大到小或者从小到大
a[j]=a[j]+a[j-1];
a[j-1]=a[j]-a[j-1]; 位置的交换
a[j]=a[j]+a[j-1];
}
}
}
int key=0;
printf("%d,%d,%d,%d,%d",a[0],a[1],a[2],a[3],a[4]);
printf("number:");
scanf("%d",&key);
printf("%d",Sreach(a,sizeof(a)/sizeof(int),key));
}
int Sreach(int a[],int len,int key){
int start = 0;
//int len = sizeof(a)/sizeof(int);
int end = len-1;
while(start<=end){
int mid = (start+end)/2;
if(a[mid]==key){
return mid;
}
else if(a[mid]<key){
start = mid+1;
}
else {
end = mid-1;
}
}
void main(){
int a[5]={6,2,4,7,3};
int min = 0;
for(int i=1;i<5;i++)
{
if(a[i]<a[min])
{
min=i ;
}
}
printf("%d",a[min]);
#include <stdio.h>//随意取5个数,给数组赋值,用两个for循环进行冒泡排序,满足2分查找的前提,数组必须是从小到大排列
#include <stdlib.h>
#include <time.h>
int Sreach();
void main(){
int a[5]={0,0,0,0,0};
int b = 0;
srand(time(0));
for(int n = 0;n<5;n++){
b = rand()%100+1;
a[n]=b;
}
for(int m=0;m<(sizeof(a)/sizeof(int));m++){
for(int j=1;j<(sizeof(a)/sizeof(int));j++){
if(a[j]<a[j-1]){ 冒泡排序从大到小或者从小到大
a[j]=a[j]+a[j-1];
a[j-1]=a[j]-a[j-1]; 位置的交换
a[j]=a[j]+a[j-1];
}
}
}
int key=0;
printf("%d,%d,%d,%d,%d",a[0],a[1],a[2],a[3],a[4]);
printf("number:");
scanf("%d",&key);
printf("%d",Sreach(a,sizeof(a)/sizeof(int),key));
}
int Sreach(int a[],int len,int key){
int start = 0;
//int len = sizeof(a)/sizeof(int);
int end = len-1;
while(start<=end){
int mid = (start+end)/2;
if(a[mid]==key){
return mid;
}
else if(a[mid]<key){
start = mid+1;
}
else {
end = mid-1;
}
}