有大佬帮我做一下这个题么?程序设计C++的

定义一个整型数组,长度100,取随机数0~100。使用rand()函数初始化赋值随机数;利用冒泡排序进行排序,并实现折半查找指定数据。

#include<iostream>
#include <stdlib.h>
using namespace std;
void inputa(int a[],int n){
if(n<0)return;
a[n]=rand()%101;
cout<<a[n]<<" ";
inputa(a,n-1);
}
//冒泡排序
void BubbleSort(int a[] ,int n){
for(int i = n-1;i > 0; --i ) {
// 每次要将未排序部分的最大值移动到下标i 的位置
for(int j = 0; j < i; ++j) // 依次比较相邻的两个元素
if( a[j] > a[j+1]) {
int tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
}
//折半查找
int binarySearch(int a[], int n, int key){
int low = 0;
int high = n - 1;
while(low<= high){
int mid = (low + high)/2;
int midVal = a[mid];
if(midVal<key)
low = mid + 1;
else if(midVal>key)
high = mid - 1;
else
return mid;
}
return -1;
}

int main(){
int n=100,avl,ret;
int a[n];inputa(a,n-1);

printf("\n请输人所要查找的元素:");
scanf("%d",&avl);

ret = binarySearch(a,n,avl);

if(-1 == ret)
printf("查找失败 \n");
else
printf ("查找成功 \n");

return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-04-10

相似回答