Tema de programación:
Cree una matriz unidimensional a, complete las siguientes tareas y consulte la figura a continuación para ver los formatos de entrada y salida.
(1) Úselo para generar 10 números enteros entre 10 y 100, guárdelos en a y envíelos; (2
) Use el método de burbujas para organizar la matriz a en orden descendente y envíela;
(3) Use la búsqueda binaria para completar los datos especificados (entrada desde el teclado) para buscar y generar la información si se encuentra.
¿Qué es la clasificación de burbujas?
(1) Compare los elementos adyacentes A(I) y A(I+1) (I=1,2,...N-1) en pares, y si A(I)>A(I+1), intercambie A (I) y la posición de A(I+1);
(2) Para los elementos N-1 restantes, compárelos en pares, intercambie sus posiciones de acuerdo con las mismas reglas, y después de las comparaciones N-2, el segundo interruptor máximo a la posición de A(N-1);
(3) Siga el mismo método, después del "procesamiento de burbujas" de N-1, cada vez compara Ni veces, y todas las secuencias están en orden.
Referencia del programa C++
#incluir
#incluir
#incluir
usando el espacio de nombres estándar;
void main()
{ int a[10],i,j,t,top=0,mid,bot=9,x;
//利用rand()产生10个10~100之间的整数,存入a中并输出
//rand() % (b-a+1)+ a ; 表示 a~b 之间的一个随机整数
cout<<"10个10到100间的随机整数为:"<<endl;
for(i=0;i<10;i++)
{
a[i]=10+rand()%(100-10+1);
cout<<a[i]<<" ";
}
cout<<endl;
//使用冒泡法,将数组a按降序排列,并输出
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
cout<<"按从大到小排列的结果为:"<<endl;
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
//使用折半查找完成指定数据(从键盘输入)的查找,并输出是否查找到的信息
cout<<"请输入要查找的数:";
cin>>x;
while(top<=bot)
{
mid=(top+bot)/2;
if(a[mid]==x)
{
break;
}
else
if(a[mid]<x)
bot=mid-1;
else
if(a[mid]>x)
top=mid+1;
}
if(top<=bot)
cout<<x<<"在第"<<mid+1<<"个位置。"<<endl;
else
cout<<"该数据不存在。"<<endl;
system("pause");
}