冒泡排序、二分查找

//冒泡排序 
#include<cstdio>
int main(){
	int M;
	int num[100]; 
	scanf("%d",&M);		
	for(int i=0;i<M;i++){
		scanf("%d",&num[i]);
	} 
	int temp;
	for(int i=0;i<(M-1);i++){       //两两比较 所以需要比较的次数等于数字数减一 
		for(int j=0;j<(M-1-i);j++){
			if(num[j]>num[j+1]){
				temp=num[j];
				num[j]=num[j+1];
				num[j+1]=temp;
			}
		}
	}
	
	for(int i=0;i<M;i++){
		printf("%d ",num[i]);
	}	
	return 0;
} 
 //二分查找法
 //一定是要实现有序的数据集 
 #include<cstdio>
 int search(int a[],int left,int right,int x){
 	int mid;
 	while(left<right){	
	mid=(left+right)/2;
 	if(x>a[mid])
 		left = mid + 1;
 	else if(x<a[mid])
		right = mid - 1;
	else
		return mid;	
	}
	return -1;
 }
 int main(){
 	int M;
	int num[100]; 	
	scanf("%d",&M);			
	for(int i=0;i<M;i++){
		scanf("%d",&num[i]);
	}  	
 	printf("%d",search(num,0,M-1,8));	
 	return 0;
 } 

猜你喜欢

转载自blog.csdn.net/lili_code/article/details/80636603