프로그래밍 주제:
1차원 배열 a를 만들고 다음 작업을 완료하고 입력 및 출력 형식은 아래 그림을 참조하십시오.
(1) 10에서 100 사이의 정수 10개를 생성하여 a에 저장하여 출력, (
2) 버블 방식을 사용하여 배열 a를 내림차순으로 정렬하여 출력,
(3) half search를 사용하여 완료 지정된 데이터(키보드에서 입력)를 검색하여 찾았는지 여부에 대한 정보를 출력합니다.
버블 정렬이란
(1) 인접한 요소 A(I)와 A(I+1)(I=1,2,...N-1)을 쌍으로 비교하고 A(I)>A(I+1)이면 A를 교환합니다. (I)와 A(I+1)의 위치,
(2) 나머지 N-1개 요소에 대해서는 쌍으로 비교하여 동일한 규칙에 따라 위치를 교환하고 N-2개 비교 후 두 번째 최대 Switch (3) 같은 방법 으로 N
-1 "버블 처리"를 수행한 후 매번 Ni 번을 비교하면 모든 시퀀스가 순서대로 정렬됩니다.
C++ 프로그램 참조
#include
#include
#include
사용 네임스페이스 std;
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");
}